Django如何形成清理文本输入以防止SQL注入,XSS等?

Car*_*son 8 python django xss sql-injection

我没有在Django的表单代码中看到任何形式的输入清理w/r/t处理原始文本.Django如何确保在进入数据库时​​清理用户输入?这样做是为了防止SQL注入等吗?

And*_*ter 17

用户输入由数据库驱动程序自动清理.

当您尝试组合包含SQL命令的单个字符串以及您尝试包含的数据时,只需要显式用户输入清理; 正确使用Python DBAPI可以完全分离命令和数据,只要您正确使用该功能,您作为程序员就不必担心SQL注入.Django默认使用该功能,因此您不必担心它.

编辑:XSS是一个单独的问题; 请参阅@ renab的评论以及https://docs.djangoproject.com/en/dev/topics/security/#cross-site-scripting-xss-protection

  • 但是如何处理GET请求数据呢?例如,输入元素的 value 属性输出用户的搜索查询,从而导致反射型 XSS。 (2认同)