我正在开展一个项目,我们允许用户提交 html/css,我们将使用该代码创建一个 pdf。我们的代码可以正常工作,但我想清理传入的数据以防止任何攻击。有一种方法可以通过以下方式清理内联 css: http://javadox.com/com.googlecode.owasp-java-html-sanitizer/owasp-java-html-sanitizer/r223/javadoc/org/owasp/html/HtmlPolicyBuilder.html#allowStyling(org.owasp.html.CssSchema)
但是有什么东西可以用来检查样式标签中的任何东西吗?我确实意识到嵌入式 css 可能太难检查了,但我在我的谷歌搜索中找不到关于这个主题的任何东西。 CssSchema 似乎检查了我需要的每个属性,我就是无法将它应用于样式标签之间的内容?
请您参考如下方法:
我的问题的答案是使用 AntiSamy。 http://atetric.com/atetric/javadoc/org.owasp.antisamy/antisamy/1.5.3/org/owasp/validator/css/CssScanner.html 这个类给了我所需的一切。它允许我扫描外部、嵌入式和内联 css。我目前正在研究内联,因为我认为我必须单独提取每个内联元素。为了将 CssScanner 与 scanStyleSheet 一起使用,我确实必须去掉 Style 标签,但它确实有效。