Django 使用已清理的_数据进行验证()

Django 使用已清理的_数据进行验证(),django,Django,我想问你是否能用简单的英语向我解释一下 函数如何验证数据 问这个问题的原因是我正在设计一个由Django支持的web应用程序 起初我认为cleaned_data()足够聪明,可以阻止用户输入包含潜在有害字符的内容。例如”;等等。可用于SQL注入攻击的字符。 令我惊讶的是,当我故意将其中的几个字符滑入表单字段时,输入就进入了数据库。我非常震惊 那么。。。cleaned_data()函数的作用是什么 我在文档中读到了这个函数,但是我找不到必要的答案。cleaned\u data用于。例如,如果您有一

我想问你是否能用简单的英语向我解释一下 函数如何验证数据

问这个问题的原因是我正在设计一个由Django支持的web应用程序 起初我认为
cleaned_data()
足够聪明,可以阻止用户输入包含潜在有害字符的内容。例如
”;<>等等。可用于SQL注入攻击的字符。
令我惊讶的是,当我故意将其中的几个字符滑入表单字段时,输入就进入了数据库。我非常震惊

那么。。。
cleaned_data()
函数的作用是什么


我在文档中读到了这个函数,但是我找不到必要的答案。

cleaned\u data
用于。例如,如果您有一个必需的CharField,它将验证它是否存在,以及是否有足够的字符。如果您有一个EmailField,那么它将验证它是否包含电子邮件地址

为了更好地了解你能做什么


它并不打算阻止XSS或SQL注入。它只是确认您的表单遵循您为其设置的基本规则。

cleaned\u data
用于。例如,如果您有一个必需的CharField,它将验证它是否存在,以及是否有足够的字符。如果您有一个EmailField,那么它将验证它是否包含电子邮件地址

为了更好地了解你能做什么


它并不打算阻止XSS或SQL注入。它只是确认您的表单遵循您为其设置的基本规则。

您误解了
已清理的\u数据。
cleaned_data
的最简单定义如下:

包含用户在各种验证后输入的数据的dict (内置或自定义)

现在,也就是说,要理解形成验证的每一个步骤,请参考这一点(重新发明轮子将是愚蠢的,因为它已经被详细解释了。)

至于SQL注入,这是另一个问题。但同样,Django作为一种内置的处理方式,它来自:

通过使用Django的QuerySet,生成的SQL将正确地 由基础数据库驱动程序转义。然而,Django也给出了 开发人员可以编写原始查询或执行自定义sql。这些 应谨慎使用功能,并且应始终小心 正确转义用户可以控制的任何参数。在里面 此外,在使用extra()和RawSQL时,应谨慎行事


我完全可以看出你的困惑,但请记住,这是两件不同的事情

您误解了
已清理的\u数据
cleaned_data
的最简单定义如下:

包含用户在各种验证后输入的数据的dict (内置或自定义)

现在,也就是说,要理解形成验证的每一个步骤,请参考这一点(重新发明轮子将是愚蠢的,因为它已经被详细解释了。)

至于SQL注入,这是另一个问题。但同样,Django作为一种内置的处理方式,它来自:

通过使用Django的QuerySet,生成的SQL将正确地 由基础数据库驱动程序转义。然而,Django也给出了 开发人员可以编写原始查询或执行自定义sql。这些 应谨慎使用功能,并且应始终小心 正确转义用户可以控制的任何参数。在里面 此外,在使用extra()和RawSQL时,应谨慎行事


我完全可以看出你的困惑,但请记住,这是两件不同的事情

甜蜜的。。。简单、简洁、直截了当的回答。拇指向上!至少我现在知道我需要自己进行验证,并对输入进行消毒。。。简单、简洁、直截了当的回答。拇指向上!至少我现在知道我需要自己验证和清理输入。谢谢你的解释。是的,我从文档中了解到这是一个基于字典的函数。我只是误解了它的实际工作原理。如上所述,我认为它是为了清理恶意输入而设计的。谢谢你的解释。是的,我从文档中了解到这是一个基于字典的函数。我只是误解了它的实际工作原理。如上所述,我认为它是为了清理恶意输入而设计的。