我在Django的表单代码中没有看到任何关于处理原始文本的表单输入消毒。Django如何确保用户输入在进入数据库时被消毒?它是否会这样做以防止SQL注入等问题?
我在Django的表单代码中没有看到任何关于处理原始文本的表单输入消毒。Django如何确保用户输入在进入数据库时被消毒?它是否会这样做以防止SQL注入等问题?
数据库驱动程序会自动对用户输入进行清理。
只有在尝试组装包含SQL命令和数据的单个字符串时,才需要显式地清理用户输入。Python DBAPI 的正确使用完全分离了命令和数据,只要您正确地使用该功能,作为程序员,您就不必担心 SQL 注入问题。Django 默认使用该功能,因此您不必担心它。
编辑:XSS 是另一个问题,请参见 @renab 的评论以及 https://docs.djangoproject.com/en/dev/topics/security/#cross-site-scripting-xss-protection
bleach
。 - Williams