Django 使用已清理的_数据进行验证()
我想问你是否能用简单的英语向我解释一下 函数如何验证数据 问这个问题的原因是我正在设计一个由Django支持的web应用程序 起初我认为Django 使用已清理的_数据进行验证(),django,Django,我想问你是否能用简单的英语向我解释一下 函数如何验证数据 问这个问题的原因是我正在设计一个由Django支持的web应用程序 起初我认为cleaned_data()足够聪明,可以阻止用户输入包含潜在有害字符的内容。例如”;等等。可用于SQL注入攻击的字符。 令我惊讶的是,当我故意将其中的几个字符滑入表单字段时,输入就进入了数据库。我非常震惊 那么。。。cleaned_data()函数的作用是什么 我在文档中读到了这个函数,但是我找不到必要的答案。cleaned\u data用于。例如,如果您有一
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时,应谨慎行事
我完全可以看出你的困惑,但请记住,这是两件不同的事情 甜蜜的。。。简单、简洁、直截了当的回答。拇指向上!至少我现在知道我需要自己进行验证,并对输入进行消毒。。。简单、简洁、直截了当的回答。拇指向上!至少我现在知道我需要自己验证和清理输入。谢谢你的解释。是的,我从文档中了解到这是一个基于字典的函数。我只是误解了它的实际工作原理。如上所述,我认为它是为了清理恶意输入而设计的。谢谢你的解释。是的,我从文档中了解到这是一个基于字典的函数。我只是误解了它的实际工作原理。如上所述,我认为它是为了清理恶意输入而设计的。