Django的request.POST对象中的数据是否已经过清理,至少足以直接用于ORM查询?

Pau*_*ite 3 django django-authentication

我正在使用Django构建一个Web论坛,包括内置的身份验证模块.

我正在使用内置UserCreationForm来注册用户.但是,由于我决定使用电子邮件地址作为识别用户的唯一方法,因此我在为用户注册之前为其生成用户名.

为了说明已经注册的用户,在生成用户名之前,我检查用户不存在所提供的电子邮件地址.

request.POST在Django ORM的查询中直接使用提供的电子邮件地址而不对其进行任何消毒是否安全?我在文档中看不到有关request.POST被清理数据的任何内容,但ORM可以防止SQL注入.我还缺少其他潜在的攻击吗?

Chr*_*att 8

request.POST它本身没有消毒,但是Django ORM会自动清理你扔掉它的任何东西,所以是的,简单地将它传递给ORM是安全的.小心使用rawextra.