允许Javascript和CSS但不允许XSS

时间:2014-01-02 08:25:08

标签: java javascript html css xss

我们允许用户使用TinyMCE创建丰富的内容,其中包括Javascript和CSS。 但是,当内容到达服务器(Java)时,我们想要过滤掉所有XSS代码或潜在的恶意代码,例如document.cookie,eval等,无论是CSS,内联JS,使用字符串文本制作的XSS Javascript(例如,document.write)等等。在鼠标上改变颜色,在CSS上设置渐变等都可以。

我们希望为用户提供灵活性,但同时我们希望确保用户的安全。我们研究了像HTML Purifier,jSoup这样的库,但它们看起来并不够聪明,无法区分潜在的恶意JS和安全的JS。 我们想知道是否有办法做到这一点?

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以将JSoup用于此作业。 JSoup有一个XSS Cleaner Parser,可以处理whilelist对象(允许的标签列表).jsoup白名单清理程序通过解析输入HTML,然后遍历解析树并只允许已知安全的标签和属性(和值)来工作。 )通过清洁输出。它不使用不适合此任务的正则表达式。 jsoup提供一系列白名单配置以满足大多数要求;如有必要,可以修改它们。请阅读此链接以获取更多详细信息[http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer]。

答案 1 :(得分:0)

你看过google caja吗?它是第三方javascript的编译器,因此可以安全地嵌入到另一个站点中:

https://developers.google.com/caja/

这听起来像你在寻找。

相关问题