[英]Java: Owasp AntiSamy vs Owasp-java-html-sanitize
我現在正在尋找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是比antiisamy更新的項目。 這些項目的目標是相同的 - 清理HTML以防止XSS並過濾掉其他不需要的內容。 然而他們的方法是不同的。 每種方法都有其權衡,因此您應根據自己的要求選擇解決方案。 簡而言之,html消毒劑使用起來更簡單,速度更快,另一方面它的靈活性較低。 但是對於大多數用戶來說它應該足夠好了。 請注意,antisamy不僅可以處理html,還可以處理css。
以下是來自owasp郵件列表的消息 ,請求創建HTML清理程序項目,包括其中一些優點的列表以及與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積極維護
- 已經超過80%的AntiSamy單元測試加上更多 。
- 只有3個相關的jar文件
- 這是一個純Java 6項目,不支持Java 5或更低版本(請注意AntiSamy支持1.4+)。
我們目前正在阿爾法,但很快就會投入生產。
示例性程序策略示例:
// 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");
你怎么看? 是一個有點尊重的競爭是一件好事嗎?
- 吉姆
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.