我正在尋找一個html消毒器,我可以調用每個API來消毒從我的web應用程序獲取的字符串。有沒有一些有用的易於使用的庫可用?有人知道可能有一兩個?用於HTML消毒的庫
我不需要太大的東西,它只需要找到未關閉的標籤並關閉它們即可。
我正在尋找一個html消毒器,我可以調用每個API來消毒從我的web應用程序獲取的字符串。有沒有一些有用的易於使用的庫可用?有人知道可能有一兩個?用於HTML消毒的庫
我不需要太大的東西,它只需要找到未關閉的標籤並關閉它們即可。
JTidy可能會幫助你。
除了JTidy你也可以看看:
Nekohtml
TagSoup
Getting text in HTmL document
https://github.com/OWASP/java-html-sanitizer現在被標記爲可供生產使用。
用Java編寫的快速且簡單的配置HTML Sanitizer,可讓您在Web應用程序中包含由第三方編寫的HTML,同時保護XSS不受影響。
您可以使用prepackaged policies
Sanitizers.FORMATTING.and(Sanitizers.LINKS)
或tests告訴你如何配置自己的輕鬆:
new HtmlPolicyBuilder()
.allowElements("a")
.allowUrlProtocols("https")
.allowAttributes("href").onElements("a")
.requireRelNofollowOnLinks()
或編寫自定義策略,做這樣的事情改變h1
s到div
小號具有一定的等級:
new HtmlPolicyBuilder()
.allowElements("h1", "p")
.allowElements(
new ElementPolicy() {
public String apply(String elementName, List<String> attrs) {
attrs.add("class");
attrs.add("header-" + elementName);
return "div";
}
}, "h1"))
該庫提供了良好的第一印象:有文檔記錄和乾淨的API。 – 2013-06-28 05:21:16
我使用這個庫,但它也刪除嵌入式iframe。有沒有什麼辦法可以添加iframe,我有真正的用例,比如添加嵌入的youtube視頻或slideshare演示文稿。我怎麼可以允許這樣的嵌入式iframe? – 2014-08-16 16:09:40
@ usero1,是的,你可以'allowElements(「iframe」)'。 – 2014-08-16 20:39:15
HTML解析器JSoup也受到政策支持的環境衛生:http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer
是國際直撥電話,jTidy幫我在這裏。感謝分享。 – onigunn 2009-12-23 08:40:29