2013-01-24 65 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,都很好。祝你好运! –