django的cleaned_data(XSS,CSRF,SQL注入,HTML / JS注入等)的安全性如何?

时间:2019-05-28 08:38:04

标签: django

所有这些风险是否都由django的cleaned_data字段处理,还是我需要实施其他安全措施,例如剥离标签?

1 个答案:

答案 0 :(得分:1)

处理或防止此类问题不是表单验证的工作。

表单验证仅可确保对输入数据进行验证并将其标准化为适当的Python数据类型,例如这样可以确保在日期输入中输入的字符串实际上是有效的日期格式,并将其转换为datetime对象。

表单验证不会阻止用户输入SQL或HTML,也不会进行任何转义(除非您编写自定义clean()方法或课程)。

针对您描述的这种攻击的保护措施发生在其他地方:

  • 模板库通过将任何模板变量视为不安全并将其转义以供在HTML中使用来防止XSS。
  • ORM通过使用查询参数化来防止SQL注入。
  • CsrfViewMiddleware通过要求POST请求使用CSRF令牌来保护您免受CSRF的侵害。在django-admin startproject
  • 生成的默认设置文件中启用了此功能

有关详细说明,请查看Security in Django上的文档。