我现在正在寻找 html 净化器库。而且我发现有两个“owasp”库。第一个是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project。
我的问题是 - 比较它们时有什么优缺点。
我现在正在寻找 html 净化器库。而且我发现有两个“owasp”库。第一个是https://code.google.com/p/owasp-java-html-sanitizer/,第二个是https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project。
我的问题是 - 比较它们时有什么优缺点。
OWASP java html sanitizer 是比 antisamy 更新的项目。这些项目的目标是相同的——净化 HTML 以防止 XSS 并过滤掉其他不需要的内容。然而他们的方法是不同的。每种方法都有其权衡,因此您应该根据自己的要求选择解决方案。简而言之,html sanitizer 使用起来更简单、速度更快,但另一方面它的灵活性较低。但是,对于大多数用户来说,它应该已经足够好了。请注意,antisamy 不仅可以处理 html,还可以处理 css。
这是来自 owasp 邮件列表的消息,请求创建 HTML sanitizer 项目,包括其与 antisamy 的一些优点和不同之处的列表。
我想开始一个与 AntiSamy 非常相似的新 OWASP 项目。
我想将此项目称为“OWASP Java HTML Sanitizer”,并且已经在以下位置提供了代码:
https://code.google.com/p/owasp-java-html-sanitizer/
这是来自 Google 捐赠的 Caja 项目的代码。它是相当高性能和低内存利用率。
- 此代码提供 DOM 模式下 AntiSamy 清理速度的 4 倍和 SAX 模式下 AntiSamy 速度的 2 倍
- 非常容易使用。它允许简单的编程 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");
你怎么看?有点尊重的竞争是好事吗?
- 吉姆