【发布时间】:2016-05-28 12:37:18
【问题描述】:
这个问题已经在这里问过很多次了,大多数人都同意原始的 HTML 输入应该存储在数据库中,并在输出时转义。但是,我认为我的情况可能略有不同。
用户可以输入一些标签(em、strong、span 等),但其他标签会被删除(脚本、样式、元数据等)
所以我正在做的是获取原始 HTML,并通过bleach.clean 发送它以剥离(而不是转义)所有不安全的标签。对我来说,这更像是验证/清理而不是转义内容以供显示。特别是因为无论我以何种格式提供数据(HTML、JSON 或任何其他格式),我都会剥离不安全的标签。
我还是应该在输出时对其进行消毒,还是在这种情况下最好在输入时进行消毒?
额外问题:
如果这是这种情况的正确方法,那么在 django 中实现它的最佳方法是什么?表单级验证还是模型级验证?
【问题讨论】:
-
坚持大多数人都同意的。 :)
标签: python html django html-sanitizing input-sanitization