首页 文章

应该在输入时对html进行消毒吗?

提问于
浏览
2

这个问题已经在这里被问了很多次,并且大多数人都同意原始HTML输入应该存储在数据库中,并在输出时进行转义 . 但是,我认为我的情况可能略有不同 .

用户能够输入一些标签(em,strong,span等),但其他标签被删除(脚本,样式,元等) . 所以我正在做的是采用原始HTML,并通过bleach.clean发送它剥离(不逃避)所有不安全的标签 . 对我来说,这感觉更像是验证/消毒而不是用于显示的内容 . 特别是因为无论我提供什么格式的数据(HTML,JSON或任何其他格式),我都会剥离不安全的标签 .

我还应该在输出上对它进行消毒吗,还是这种情况下最好在输入时进行消毒?

奖金问题:

如果这是适合这种情况的方法,那么在django中实现它的最佳方法是什么?表单级验证或模型级验证?

1 回答

  • 1

    在消毒方面,没有太多的东西 . 您应该始终清理所有用户输入,然后将它们插入到数据库中以清理HTML本身以及防止任何SQL注入攻击 . 当从数据库进入并放入网页时,运行额外的检查并清理输出并没有什么坏处 .

相关问题