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