java - 使用 Java 清理 CSS

标签 java css xss

Java 中是否有用于净化 CSS 样式表的良好库?我们希望允许管理员用户上传 CSS 样式表来控制他们管理的网站部分的外观。当然,我们不想 allox XSS 攻击,例如 background:url(javascript:),所以我们正在寻找一个好的清理解决方案。

到目前为止我发现的唯一我喜欢的东西是使用 Google Caja CssTree parser从 CSS 中排除危险标签。我可能最终会使用这样的东西,但如果有人知道一个库,我不必为它降低和提取那么多依赖项,那将会很有帮助。

解决方案:使用 Vineet Reynolds 建议的 AntiSamy 库

        Policy policy = Policy.getInstance("antisamy.xml");
        ResourceBundle messages = ResourceBundle.getBundle("AntiSamy", Locale.getDefault());

        CssScanner scanner = new CssScanner(policy, messages);
        CleanResults results = scanner.scanStyleSheet(stylesheet, Integer.MAX_VALUE);

最佳答案

OWASP AntiSamy可以执行 CSS 样式表验证;不过,我还没有特别尝试过该功能。另外,我不确定它是否符合您作为一个依赖太多的元素的要求。它在内部依赖 Apache Batik 来执行样式表的解析。

如果我有安全意识,我就不会被下游依赖所困扰;我会为任务选择合适的工具。

关于java - 使用 Java 清理 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333298/

相关文章:

php - 如何防止我的网站受到 XSS 注入(inject)?

asp.net - 微软反跨站脚本库

java - 为什么使用 junit-jupiter(聚合器)执行测试而不使用单独的依赖项?

java - 将 Java 转换为 python DSA 签名

html - 为什么使用 box-sizing 属性在其中添加边框时 <td> 的大小会发生变化?

css - 文本旋转 270 度在 IE8 中不起作用

java - 如何清理 HTML 代码以防止 Java 或 JSP 中的 XSS 攻击?

java - JLabel : 的对齐问题

Java - 如何创建屏幕层以在游戏中加载 UI?

html - 如何选择 div 中的两个不同输入类型的文本?