转自
http://www.hetaoblog.com/%E6%88%91%E7%9A%84%E7%AC%AC%E4%B8%80%E6%AC%A1%E5%BC%80%E6%BA%90-hetaoblogxsshtmlfilter-%E6%94%B9%E8%BF%9B%E4%BA%86%E4%B8%80%E4%B8%AAjava%E7%89%88%E5%BC%80%E6%BA%90%E7%9A%84xss-html-filter/
搞防止xss的时候,找了一圈发现比较简单易用的属于这个,
http://xss-html-filter.sourceforge.net/
下面是作者的页面
http://josephoconnell.com/java/xss-html-filter/
不过这个xss html filter有个问题,不支持对属性值的过滤设定,
简单的说,下面的style是合法的
<span style=”color:#121212;”></span>
下面的style是非法的,有xss攻击漏洞
<span STYLE=”xss:expression(alert(‘XSS’))”>2</span>
但是原来的版本只能要么支持style属性,要么不支持style属性,不能设置支持style里面的某些内容
所以我改进了一下,代码在这里,欢迎提出改进意见
http://hetaoblog.googlecode.com/files/HetaoBlogXssHTMLFilter.java
我喜欢简洁的修改代码完成,所以设置的允许的html元素、属性和属性的值直接修改构造函数:)
使用上:
* 1. 修改构造函数 HetaoBlogXssHTMLFilter() 选择允许的html元素、属性和属性的值
下面是部分例子
{
final ArrayList<Attribute> span_atts = new ArrayList<Attribute>();
Map<String, Pattern> allowedAttrValues = new HashMap<String, Pattern>();
allowedAttrValues.put(“color”, Pattern.compile(“(#([0-9a-fA-F]{6}|[0-9a-fA-F]{3}))”));
allowedAttrValues.put(“font-weight”, Pattern.compile(“bold”));
allowedAttrValues.put(“text-align”, Pattern.compile(“(center|right|justify)”));
allowedAttrValues.put(“font-style”, Pattern.compile(“italic”));
allowedAttrValues.put(“text-decoration”, Pattern.compile(“underline”));
allowedAttrValues.put(“margin-left”, Pattern.compile(“[0-9]+px”));
allowedAttrValues.put(“text-align”, Pattern.compile(“center”));
span_atts.add(new Attribute(“style”, allowedAttrValues));
vAllowed.put(“span”, span_atts);
}
{
final ArrayList<Attribute> div_atts = new ArrayList<Attribute>();
div_atts.add(new Attribute(“class”));
div_atts.add(new Attribute(“align”));
vAllowed.put(“div”, div_atts);
}
* 2. 调用类似这样的函数String outHtml = HetaoBlogXssHTMLFilter.filter(sourceHtmlString);
分享到:
相关推荐
java_jvm_参数_-Xms_-Xmx_-Xmn_-Xss_调优总结.pdf java_jvm_参数_-Xms_-Xmx_-Xmn_-Xss_调优总结.pdf
前端开源库-xss-filtersXSS过滤器,安全的XSS过滤器-足够的输出过滤来防止XSS!
java jvm 参数 -Xms -Xmx -Xmn -Xss -
动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受...
JVM调优总结 -Xms -Xmx -Xmn -Xss
xss-filter-spring-boot-starter springboot自动xss 使用方法在项目的pom.xml中加入依赖即口 <groupId>com.djk</groupId> <artifactId>xss-filter-spring-boot-starter <version>0.0.1 目前支持3种入参数xss...
经典的xss注入通关游戏,搭建简单。适合网络安全测试人员
JVM调优总结 -Xms -Xmx -Xmn -Xss JVM调优总结 -Xms -Xmx -Xmn -Xss
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
PDF-XSS实例文件
Laravel开发-laravel-xss-filter 过滤XSS的用户输入,但不要过滤其他HTML
JVM参数_-Xms_-Xmx_-Xmn_-Xss_调优总结
E069-web安全应用-存储型XSS的场景实践
Lucy-XSS:XssFilter,XssPreventer Lucy-XSS是一个包含两个防御模块的开源库,用于保护Web应用程序免受XSS攻击。 它支持基于白名单规则的安全策略。 当前的默认规则是Naver的标准。 您可以根据需要更改默认规则。...
E076-PHP应用安全-存储型XSS漏洞开发及渗透测试
首先说一下思路,防止这种类似于注入攻击,就是使用拦截器(Filter)处理特殊字符或过滤特殊字符 今天介绍一个方法,利用覆盖Servlet的getParameter方法达到处理特殊字符的目的来解决(防止)Xss攻击 web.xml,需要的...
web漏扫-awvs漏扫软件-主要xss分析-运维安全awvs漏扫工具详细笔记
java配置xssproject,文件包括配置步骤,需要的jar包,完整的xssproject类,并且提供的类解决了multipart/form-data类型的Request请求xss过滤问题
对js解决跨域问题、传统的同源策略、的问题进行了详细的阐述、值得收藏!