4
我似乎無法找到解釋Django內置複雜查詢(Q對象或F對象)的安全性的任何資源。是否有可能在這些查詢中注入SQL攻擊?我做了一個小測試:Django Q對象(複雜查詢)是否安全?
from models import *
from django.db.models import Q
q = MyModel.objects.filter(Q(mycolumn__contains='%; DROP DATABASE mydatabase;'))
print q
>>> []
print q.query
>>> SELECT `mydatabase_mytable`.`mycolumn` FROM `mydatabase_mytable` WHERE
`mydatabase_mytable`.`mycolumn` LIKE BINARY %\%; DROP DATABASE mydatabase;%
雖然這似乎沒有丟掉我的數據庫。這裏發生了什麼?
直接使用'extra()'或使用底層連接/遊標與原始SQL。 – alecxe 2014-11-25 01:08:51