У меня есть веб-приложение, которое позволяет пользователям вводить поисковый запрос, который затем будет извлекать модели, соответствующие этим критериям поиска. Вот мои методы:icontains и SQL Security
@staticmethod
def searchBody(query):
'''
Return all entries whose body text contains the query.
'''
return Entry.objects.get(text__icontains=query)
@staticmethod
def searchTitle(query):
'''
Return all entries whose title text contains the query.
'''
return Entry.objects.get(title__icontains=query)
@staticmethod
def searchAuthor(query):
'''
Return all entries whose author text contains the query.
'''
return Entry.objects.get(author.icontains=query)
Мой вопрос просто: безопасно ли это? Другими словами, делает ли incontains
необходимые операции экранирования строк, чтобы человек не мог вставлять SQL или код Python в запрос для запуска атаки?
Кроме того, вы можете выполнить запрос . Введите request.objects.get (author__contains = 'test') запрос и проверьте, что Django делает с вашим параметром. –