转自
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);
分享到:
相关推荐
"前端开源库-xss-filters"是一个专门针对这种情况设计的开源库,其目标是提供安全的XSS过滤器,帮助开发者有效地防止XSS攻击。 这个库的核心功能是提供一系列的输出过滤机制,这些过滤器能够识别并清除或转义可能...
PDF-XSS实例文件
本文档主要介绍Java虚拟机(JVM)中四个重要的参数:`-Xms`、`-Xmx`、`-Xmn` 和 `-Xss` 的含义、作用以及如何通过这些参数来优化JVM的性能。这些参数直接影响到Java应用程序运行时的内存管理策略,合理配置能够显著...
动态站点会受到一种名为“跨站脚本攻击”(Cross Site Scripting, 安全专家们通常将其缩写成XSS,原本应当是css,但为了和层叠样式表(Cascading Style Sheet,CSS )有所区分,故称XSS)的威胁,而静态站点则完全不受...
但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在 3000~5000 左右。 在 JVM 调优中,还需要考虑垃圾回收器的选择。JVM 给了三种选择:串行收集器、并行收集器、并发收集器。串行收集器只...
`xss-labs-master.zip`包含了一个专门用于学习和实践XSS注入的通关游戏或靶场,对于网络安全测试人员来说,这是一个极好的学习资源。 **XSS分类** 1. **存储型XSS**:也称为持久型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...
JVM内存调优是一个复杂的过程,需要根据应用程序的特性和资源需求进行调整。通常,我们需要关注垃圾收集器的性能,如新生代与老年代的占比,以及内存分配和回收的效率。同时,监控系统的CPU使用率、内存占用和GC日志...
一、什么是XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如...
"xss-labs-master.rar" 提供了一个针对XSS漏洞的专项练习平台,旨在帮助初学者及安全爱好者提升对XSS攻击的理解和防御能力。这个靶机资源共分为二十个关卡,由浅入深,逐步引导用户掌握XSS攻防的核心技巧。 一、XSS...
你可以创建一个自定义Filter,对所有请求参数进行遍历,并对特殊字符进行转义。 2. **覆盖Servlet的getParameter方法**: Servlet API允许覆盖`getParameter`方法,这样在获取请求参数时就可以添加额外的安全检查...
【MeyboMail Web(Java)开源简化-meybomailweb项目源码】是一个针对Java开发人员的毕业设计项目,旨在提供一个基于Web的邮件系统实现。该项目以开源的形式,简化了邮件服务的开发流程,使开发者可以更快地理解和构建...
当-Xms与-Xmx相同时,JVM在启动时会分配一个固定大小的堆内存,从而避免了动态调整带来的性能开销。 - **示例**:`java -Xms3550m ...` #### 2. -Xmx(Maximum Heap Size) - **定义**:设置JVM可以使用的最大堆...
SpringBoot是一个流行的Java Web开发框架,提供了丰富的安全组件。XSSFilter是用于过滤HTTP请求中可能存在的XSS攻击的一种机制。在SpringBoot应用中配置XSSFilter,可以确保传入和传出的数据都经过安全处理,防止XSS...
`-XX:SurvivorRatio` 设置年轻代中Eden区与Survivor区的比率,例如`-XX:SurvivorRatio=4`表示一个Survivor区占年轻代的1/6。 `-XX:MaxPermSize` 设定持久代(Permanent Generation)的大小,如`-XX:MaxPermSize=16...
它利用`<script>`标签可以跨域加载资源的特性,由服务器提供一个回调函数,返回数据包裹在该回调函数中,客户端通过动态创建`<script>`标签来调用这个返回的函数,从而实现跨域数据获取。 2. **CORS(Cross-Origin ...
XSSProject是一个专门针对XSS攻击防护的Java库,通过提供一系列的过滤规则和处理机制,帮助开发者构建更安全的Web应用。 首先,我们来了解一下XSSProject的核心功能。XSSProject主要包含以下几个方面: 1. **XSS...
DVWA是一个开源的Web应用程序漏洞测试平台,旨在帮助开发者和安全专家测试Web应用程序的安全性。DVWA提供了多种类型的漏洞测试,包括SQL Injection、Cross-Site Scripting(XSS)、Cross-Site Request Forgery(CSRF...
Lucy-XSS:XssFilter,XssPreventer Lucy-XSS是一个包含两个防御模块的开源库,用于保护Web应用程序免受XSS攻击。 它支持基于白名单规则的安全策略。 当前的默认规则是Naver的标准。 您可以根据需要更改默认规则。...
这通常是一个第三方库,例如SpringCloud Gateway中的XssFilter或者其他专门为SpringBoot设计的过滤器库。 2. **配置过滤器**:在SpringBoot的配置文件(application.properties或application.yml)中,添加Xss...