Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java清理CSS_Java_Css_Xss - Fatal编程技术网

使用Java清理CSS

使用Java清理CSS,java,css,xss,Java,Css,Xss,Java中是否有一个好的库用于清理CSS样式表?我们希望允许管理员用户上传CSS样式表,以控制他们管理的网站部分的外观。当然,我们不希望允许诸如background:url(javascript:)之类的XSS攻击,因此我们正在寻找一个好的清理解决方案 到目前为止,我唯一喜欢的一件事就是使用从CSS中排除危险标记。我可能最终会使用类似的东西,但如果有人知道一个库,我不必为它删除太多依赖项并进行提取,那将是很有帮助的 解决方案:建议使用Vineet Reynolds等反艾米库 Po

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

到目前为止,我唯一喜欢的一件事就是使用从CSS中排除危险标记。我可能最终会使用类似的东西,但如果有人知道一个库,我不必为它删除太多依赖项并进行提取,那将是很有帮助的

解决方案:建议使用Vineet Reynolds等反艾米库

        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);

Java的内置和类支持解析样式表并允许您与它们交互(删除某些属性、强制执行某些属性等)。我不确定它们是否完全是最新的,是否对每个可用的属性都进行了建模,但这是值得研究的(少了一个库可供发布!)

您可以从

您仍然需要迭代所有规则,并确定它们是否危险。

可以执行CSS样式表验证;不过,我还没有特别尝试过这个功能。另外,我不确定它是否符合你的要求,因为它是一个依赖性太多的项目。它在内部依赖apachebatik来执行样式表的解析

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

代表了关于什么是最关键的web应用程序安全缺陷以及防范这些缺陷的最佳实践的广泛共识。它建议使用来构建针对XSS的防御。这个ESAPI项目创建了一个编码库,它有多种语言,包括Java、.NET、PHP、Classic ASP、Cold Fusion、Python和Haskell。它具有针对您正在处理的上下文对不可信数据进行编码的工具:

encodeForHTML
encodeForHTMLAttribute
encodeForJavaScript
encodeForCSS
encodeForURL
它还有一个验证器,用于验证输入所属的上下文:


布尔值isValidURL=ESAPI.validator().isValidInput(“URLContext”,userURL,“URL”,255,false);

<一些>使用ESAPI的组织包括美国运通、Apache基金会、Booz Allen Hamilton、Advices安全、Foundstone(McAfee)、哈特福德、无限校园、洛克希德马丁、MITRE、美国海军- SPAWAR、世界银行、SANS研究所。
我还建议阅读他们的文章,其中描述了针对XSS构建防御的最佳实践(基本上可以归结为,对于要将不受信任的数据放入的HTML文档部分,必须使用转义语法)。

哇-非常感谢-我可能也会将其用于HTML。它的双重特殊之处在于它实际上有错误信息,所以我可以拒绝别人并告诉他们原因。@Ransom,很高兴知道它能满足你的需要。但也要看看谷歌代码上的问题页面。