Python 输入时是否应清除html?

Python 输入时是否应清除html?,python,html,django,html-sanitizing,input-sanitization,Python,Html,Django,Html Sanitizing,Input Sanitization,这个问题在这里已经被问了好几次了,大多数人都同意原始HTML输入应该存储在数据库中,并在输出时转义。然而,我认为我的情况可能略有不同 用户可以输入一些标记(em、strong、span等),但其他标记被删除(脚本、样式、元等) 因此,我正在做的是获取原始HTML,并将其发送到剥离(而不是转义)所有不安全的标记。对我来说,这更像是验证/消毒,而不是转义显示内容。特别是因为无论我以何种格式提供数据(HTML、JSON或任何其他格式),我都会剥离不安全的标记 我还是应该在输出端对其进行消毒,还是在输入

这个问题在这里已经被问了好几次了,大多数人都同意原始HTML输入应该存储在数据库中,并在输出时转义。然而,我认为我的情况可能略有不同

用户可以输入一些标记(em、strong、span等),但其他标记被删除(脚本、样式、元等) 因此,我正在做的是获取原始HTML,并将其发送到剥离(而不是转义)所有不安全的标记。对我来说,这更像是验证/消毒,而不是转义显示内容。特别是因为无论我以何种格式提供数据(HTML、JSON或任何其他格式),我都会剥离不安全的标记

我还是应该在输出端对其进行消毒,还是在输入端进行消毒更好

奖金问题:
如果这是这个场景的正确方法,那么在django中实现它的最佳方法是什么?表单级验证还是模型级验证?

当涉及到清理时,没有太多这样的事情。在将所有用户输入插入数据库之前,您应该始终对其进行清理,以清理HTML本身并防止任何SQL注入攻击。当输出从数据库进入网页时,运行额外的检查并对其进行清理并没有什么坏处。

这是我的想法。尽管Django已经在处理SQL注入,但我认为清理原始数据仍然是有意义的。谢谢你的建议!坚持大多数人都同意的原则。:)