2013-01-24 102 views
2

我正在編寫一個java webapp,我想讓我的用戶輸入包含XSS/Cross-Site-Scripting安全標記的文本。我想將用戶生成的標記保存到數據庫並將其顯示爲HTML。爲XSS安全的Java標記語言

我知道markdown,但是這允許輸入原始的HTML,而不是XSS安全的。

java中有沒有像XSS一樣的類似wiki/markdown的解釋器?我也想聽聽任何可能在這裏幫助的javascript/wysiwig編輯。

或者,在Java中是否有任何XSS過濾器可以清理HTML,以便它是XSS安全的。

回答

3

我使用Markdown(實際上是Pegdown)和Jsoup一起工作的很好。

Jsoup ...

  • 清理對安全白名單用戶提交的內容,以防止XSS攻擊。
  • 輸出整潔HTML
+1

您也可以使用[Pegdown](https://github.com/sirthias/ pegdown)以及'SUPPRESS_ALL_HTML'擴展名:HTML塊和內聯HTML標記將被讀取但不包含在輸入中。沒有HTML標記Markdown是安全的。 – Sonson123

2

看看JSoup,它允許你指定一個白名單:http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

+1

謝謝,我想我會用一個WYSIWIG編輯器(CKEditor或TinyMCE)+ jsoup來消毒。 –

+0

@uklance歡迎您使用CKEditor + JSoup組合,它的效果非常好。我也用過TinyMCE,都很好。祝你好運! –