【问题标题】:What are my options for white-listing HTML in ColdFusion?在 ColdFusion 中将 HTML 列入白名单有哪些选择?
【发布时间】:2011-06-15 15:55:05
【问题描述】:

我想让我的用户输入 HTML。

要求

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

现有选项

  1. AntiSamy。不幸的是,AntiSamy 对特殊字符进行编码并打破了要求 2。
  2. 本机 ColdFusion 函数(HTMLCodeFormat() 等...)不起作用,因为它们将 HTML 编码为实体,因此不符合要求 1。
  3. 我在某处找到了这组函数,但我无法确定它的安全性:http://pastie.org/2072867

那么我有哪些选择?有这方面的现有库吗?

【问题讨论】:

  • 什么不能使用 AntiSamy 并弄清楚如何将 HTML 实体转换回来?请参阅此问题的答案,了解使用 Apache Commons 库使用 Java 执行此操作:stackoverflow.com/questions/994331/…
  • @orangepips,因为我在这里读到这可能是不安全的:stackoverflow.com/questions/3246739/… - 不确定这是不是真的!
  • @Mohammad,很有趣。认为您可以转身并使用HTMLEditFormat(cleanUpString) 来逃避该问题中引用的示例。
  • @orangepips,假设我想用你的例子,这会失败:createObject("java", "StringEscapeUtils"); ...
  • @Mohamad:回复:可扩展。负载测试。

标签: coldfusion xss whitelist


【解决方案1】:

Portcullis 适用于 Cold Fusion 以解决特定于攻击的问题。随着时间的推移,我使用了一些我在网上找到的其他正则表达式解决方案,这些解决方案效果很好,尽管它们还没有那么充实。在 15 年(作为 CMS 开发人员的 10 年)中,我构建的任何东西都没有被黑客入侵....敲木头。

在开发任何类型的输入字段时,最好从不同的角度看待问题。您已经获得了 UI 端,其中包括可用性和客户端验证。是的,它可以被绕过,但是基于 javascript 的验证比后端中断方法更快、响应更快,并且在神奇的 UI 规模上的速率更高,或者只是让事情在没有警告的情况下“消失”。它将加速后端验证,因为它会进行初始筛选。所以,它不是“替代”而是“附加”类型的解决方案,不容忽视。

同样在 UI 方面,为您的用户提供优质的编辑器也可以在此过程中产生巨大的影响。我个人最喜欢的是 CKeditor,因为它是唯一一个可以在前端处理 Microsoft Word 代码的软件,它远离我的数据库。看起来很傻,但是 Word HTML 是有效的,所以它不会引发任何危险信号……但是在中等大小的文档上,它会很快使 DB 字段插入最大值超载,信不信由你。一个好的编辑器不仅会减少愚蠢的 HTML 的数量,而且还会让用户更快地完成工作....win/win。

我亲自对我的角色进行编码和解码......它总是运作良好,所以我从未改变过实践。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 2011-12-14
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 2016-07-16
    相关资源
    最近更新 更多