Данные в объекте Django request.POST санированы, по крайней мере, достаточно для непосредственного использования в запросе ORM? - PullRequest
3 голосов
/ 28 февраля 2012

Я создаю веб-форум с использованием Django, включая встроенный модуль аутентификации .

Я использую встроенный UserCreationForm для регистрации пользователей. Однако, поскольку я решил использовать адреса электронной почты в качестве единственного способа идентификации пользователей, я создаю имя пользователя для пользователей перед их регистрацией.

Чтобы учесть пользователей, которые уже зарегистрировались, перед созданием имени пользователя я проверяю, что пользователя с указанным адресом электронной почты не существует.

Безопасно ли использовать предоставленный адрес электронной почты, прямо с request.POST, в запросе к Django ORM, не проводя никакой очистки? Я ничего не вижу в документации о том, что данные в request.POST подвергаются очистке, но ORM защищает от внедрения SQL . Есть ли другие потенциальные атаки, которые я пропускаю?

1 Ответ

8 голосов
/ 28 февраля 2012

request.POST сам по себе не очищен, но Django ORM автоматически очищает все, что вы на него бросаете, поэтому да, безопасно просто передать его прямо в ORM. Просто будьте осторожны с использованием raw или extra.

...