OWASP java html sanitizer 是比 antisamy 更新的项目。这些项目的目标是相同的——净化 HTML 以防止 XSS 并过滤掉其他不需要的内容。然而他们的方法是不同的。每种方法都有其权衡,因此您应该根据您的要求选择解决方案。简而言之,html sanitizer 使用起来更简单、速度更快,但另一方面它的灵活性较低。但是,对于大多数用户来说,它应该已经足够好了。注意,antisamy 不仅可以处理 html,还可以处理 css。
我想开始一个新的 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");
你怎么看?有点尊重的竞争是好事吗?