Java:Owasp AntiSamy 与 Owasp-java-html-sanitize
Posted
技术标签:
【中文标题】Java:Owasp AntiSamy 与 Owasp-java-html-sanitize【英文标题】:Java: Owasp AntiSamy vs Owasp-java-html-sanitize 【发布时间】:2015-04-19 02:34:32 【问题描述】:我现在正在寻找 html 净化器库。而且我发现有两个“owasp”库。第一个是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project。
我的问题是 - 比较它们的优缺点是什么。
【问题讨论】:
【参考方案1】:OWASP java html sanitizer 是比 antisamy 更新的项目。这些项目的目标是相同的——净化 HTML 以防止 XSS 并过滤掉其他不需要的内容。然而他们的方法是不同的。每种方法都有其权衡,因此您应该根据您的要求选择解决方案。简而言之,html sanitizer 使用起来更简单、速度更快,但另一方面它的灵活性较低。但是,对于大多数用户来说,它应该已经足够好了。注意,antisamy 不仅可以处理 html,还可以处理 css。
Here is message 来自 owasp 邮件列表,请求创建 HTML sanitizer 项目,包括其与 antisamy 的一些优点和区别的列表。
我想开始一个新的 OWASP 项目,该项目非常类似于 反萨米。
我想将此项目称为“OWASP Java HTML Sanitizer”,并且 已有代码:
https://code.google.com/p/owasp-java-html-sanitizer/
这是来自 Google 捐赠的 Caja 项目的代码。它是 相当高的性能和低内存利用率。
此代码在 DOM 模式下提供 4 倍的 AntiSamy 清理速度,在 SAX 模式下提供 2 倍的 AntiSamy 速度 非常易于使用。它允许简单的编程 POSITIVE 策略配置(见下文)。没有 XML 配置。 它不受 Niko HTML 解析器带来的各种安全漏洞的影响 由我自己和 Google AppSec 团队的 Mike Samuel 积极维护 已经通过了 AntiSamy 80% 的单元测试还有更多。 只有 3 个依赖的 jar 文件 这是一个纯 Java 6 的项目,不支持 Java 5 或更低版本(请注意 AntiSamy 支持 1.4+)。
我们目前处于 Alpha 阶段 - 但将做好生产准备 很快。
示例程序化政策示例:
// A VERY SIMPLE WHITELISTING POLICY final ImmutableSet<String> okTags = ImmutableSet.of( "a", "b", "br", "div", "i", "img", "input", "li", "ol", "p", "span", "ul"); final ImmutableSet<String> okAttrs = ImmutableSet.of( "div", "checked", "class", "href", "id", "target", "title", "type");
你怎么看?有点尊重的竞争是好事吗?
吉姆
【讨论】:
但是使用 Html Sanitizer 您必须定义一个策略,并且 AntiSamy 已经包含预定义的策略集,这对于足够通用的 html 真正有帮助。 Html Sanitizer 现在似乎包含了预打包的策略:github.com/OWASP/java-html-sanitizer/blob/master/src/main/java/…以上是关于Java:Owasp AntiSamy 与 Owasp-java-html-sanitize的主要内容,如果未能解决你的问题,请参考以下文章