在ColdFusion中将HTML列入白名单有哪些选择?

时间:2011-06-15 15:55:06

标签: coldfusion xss whitelist

我想允许我的用户输入HTML。

要求

  1. 允许一组特定的HTML标记。
  2. 保留字符(例如,不要将ã编码为ã
  3. 现有选项

    1. AntiSamy。不幸的是,AntiSamy对特殊字符进行编码并打破了要求2.
    2. 原生ColdFusion函数(HTMLCodeFormat()等...)无法正常工作,因为它们将HTML编码为实体,因此无法满足要求1.
    3. 我在某个地方找到了这套功能,但我无法确定这是多么安全:http://pastie.org/2072867
    4. 那么我的选择是什么?是否有现有的库?

1 个答案:

答案 0 :(得分:2)

Portcullis适用于针对攻击特定问题的Cold Fusion。我已经使用了我在网络上发现的其他一些运行良好的其他正则表达式解决方案,尽管它们还没有得到充实。在15年内(作为CMS开发人员10年),我所建造的任何东西都被黑了......敲木头。

在开发任何类型的输入字段时,最好从不同角度查看问题。你有UI方面,包括可用性和客户端验证。是的,它可以绕过,但基于javascript的验证更快,响应更快,并且在神奇的UI范围内比后端中断方法更高或者只是在没有警告的情况下使事情“消失”。它将加速后端验证,因为它进行了初步筛选。所以,它不是一个“而不是”,而是一个不可忽视的“补充”类型解决方案。

同样在用户界面上,为用户提供高质量的编辑器也可以在这个过程中产生巨大的变化。我个人最喜欢的是CKeditor,因为它是唯一可以在前端处理Microsoft Word代码的人,使其远离我的数据库。这看起来很愚蠢,但是Word HTML是有效的,因此它不会设置任何红色标志....但是在中等大小的文档上,它会快速超载数据库字段插入最大值,信不信由你。一个好的编辑器不仅可以减少进入的愚蠢HTML的数量,而且还可以让用户更快地获取内容.... win / win。

我个人对我的角色进行编码和解码......它总是运作良好所以我从未改变过练习。