.
关于xss的概念和解决方案网上很多,可以参考这个:
http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html#xsshappen
这里说下最近项目中我们的解决方案,主要用到commons-lang3-3.1.jar这个包的org.apache.commons.lang3.StringEscapeUtils.escapeHtml4()这个方法。
解决过程主要在用户输入和显示输出两步:在输入时对特殊字符如<>" ' & 转义,在输出时用jstl的fn:excapeXml("fff")方法。
其中,输入时的过滤是用一个filter来实现,
实现过程:
在web.xml加一个filter
<filter>
<filter-name>XssEscape</filter-name>
<filter-class>cn.pconline.morden.filter.XssFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XssEscape</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
package cn.pconline.morden.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class XssFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
chain.doFilter(new XssHttpServletRequestWrapper((HttpServletRequest) request), response);
}
@Override
public void destroy() {
}
}
package cn.pconline.morden.filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import org.apache.commons.lang3.StringEscapeUtils;
public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
public XssHttpServletRequestWrapper(HttpServletRequest request) {
super(request);
}
@Override
public String getHeader(String name) {
return StringEscapeUtils.escapeHtml4(super.getHeader(name));
}
@Override
public String getQueryString() {
return StringEscapeUtils.escapeHtml4(super.getQueryString());
}
@Override
public String getParameter(String name) {
return StringEscapeUtils.escapeHtml4(super.getParameter(name));
}
@Override
public String[] getParameterValues(String name) {
String[] values = super.getParameterValues(name);
if(values != null) {
int length = values.length;
String[] escapseValues = new String[length];
for(int i = 0; i < length; i++){
escapseValues[i] = StringEscapeUtils.escapeHtml4(values[i]);
}
return escapseValues;
}
return super.getParameterValues(name);
}
}
分享到:
相关推荐
首先说一下思路,防止这种类似于注入攻击,就是使用拦截器(Filter)处理特殊字符或过滤特殊字符 今天介绍一个方法,利用覆盖Servlet的getParameter方法达到处理特殊字符的目的来解决(防止)Xss攻击 web.xml,需要的...
XSS跨站脚本攻击在Java开发中防范的方法
高级XSS攻击过滤器 - 基于Java开发,包含33个文件,如XML、JAVA、...该系统实现了一个有选择地过滤XSS攻击代码的功能,通过Java技术实现界面交互和功能模块,为用户提供了一个高效、安全的XSS攻击防御解决方案。
防止XSS攻击的开源Java的三个jar包antlr-3.0.1.jar、antlr-runtime-3.0.1.jar、xssProtect-0.1.jar
主要使用Filter针对Xss攻击,sql注入,服务器访问白名单,以及csrf进行安全校验 1,主要实现的是三大块功能:Xss攻击,sql注入,服务器白名单,以及csrf 2,此Filter为真实项目部署,在XssHttpServletRequestWrapper...
工具:xss-html-filter-master的源码 书籍:XSS跨站脚本攻击剖析与防御(完整版) 所需jar: antlr-3.0.1.jar antlr-runtime-3.0.1.jar xssProtect-0.1.jar
本包中,含有2个实现springboot后端实现防御xSRF攻击的策略代码,具体使用,还需要看您的具体场景,进行区分使用!CSRFInterceptor.java、XSRFHandlerInterceptor.java
09.如何防御XSS攻击与防止抓包篡改数据01(124分钟) 09.如何防御XSS攻击与防止抓包篡改数据02(63分钟) 10.springsecurity实现动态权限控制(63分钟) 11.springsecurity整合jwt实现接口授权01(107分钟) 11.spring...
虽然有大量的XSS攻击方式,但是遵循一些简单的规则可以完全抵御这些严重攻击。本文不探讨XSS对技术、业务的影响,只说XSS可以导致攻击者能够获取到操作浏览器的做任何事情的能力。 都可以通过在服务端执行适当的验证...
jello-optimizer-velocity-xss 与FIS组@2betop发布的类似 自动将JSP内容区的变量加 fn:escapeXml 包裹,用于防止恶意代码执行。 另外,对于标签强制加入属性escapeXml="true" 使用 安装 npm install -g jello-...
Lucy-XSS:XssFilter,XssPreventer Lucy-XSS是一个包含两个防御模块的开源库,用于保护Web应用程序免受XSS攻击。 它支持基于白名单规则的安全策略。 当前的默认规则是Naver的标准。 您可以根据需要更改默认规则。...
如何防御XSS攻击 将脚本特殊字符,转换成html源代码进行展示。 汉字编码: 步骤:编写过滤器拦截所有getParameter参数,重写XssHttpServletRequestWrapper,将参数特殊字符转换成html源代码保存。 @WebFilter...
使用ServletFilter进行XSS防御,重点是过滤HttpServletRequest中的Paramter或Body中的字符串,使用正则表达式进行匹配,根据攻击特征进行拦截。附件中包括几种特征编码和正则拦截实现。
基于SpringBoot+Mybatis开发的分布式校园租赁系统 ,项目经过严格测试,确保可以运行!项目基于Java Web,前端用网页展现。该系统包括两个子系统:一是后台管理系统,供管理员使用。...使用AOP技术进行XSS防御
全书分4 篇共16 章,除介绍Web 安全的基础知识外,还介绍了Web 应用程序中最常见的安全漏洞、开源程序的攻击流程与防御,并着重分析了“拖库”事件时黑客所使用的攻击手段。此外,还介绍了渗透测试工程师其他的一些...
慢速http拒绝服务攻击及防御方案 由交互式扫描联想到的实时漏洞感知方法 Recognizing C Code Constructs In Assembly SDL-软件安全设计初窥 AWVS AcuSensor功能分析 MobSF框架及源代码分析 PHP反序列化漏洞初窥 ...
XSS(跨站脚本攻击):反射型XSS、存储型XSS、DOM XSS CSRF(跨站请求伪造) SSRF(服务器端请求伪造) 文件上传下载:富文本编辑器 弱口令: X-Scan、Brutus、Hydra、溯雪等工具 其它漏洞: 4、逻辑漏洞(3天) ...
后端开发是构建网站、应用程序和软件系统的重要组成...安全性:熟悉常见的网络安全威胁和防御措施,包括跨站脚本攻击(XSS)、SQL 注入、身份验证和授权等。学习如何保护用户数据、防止攻击,并实施加密和安全通信机制
3.1.1 XSS攻击 128 3.1.2 CRSF攻击 130 3.1.3 SQL注入攻击 133 3.1.4 文件上传漏洞 139 3.1.5 DDoS攻击 146 3.1.6 其他攻击手段 149 3.2 常用的安全算法 149 3.2.1 数字摘要 149 3.2.2 对称加密...
通常情况下,有三种方法被广泛用来防御CSRF攻击:验证token,验证HTTP请求的Referer,还有验证XMLHttpRequests里的自定义header。鉴于种种原因,这三种方法都不是那么完美,各有利弊。在跨站请求伪造(CSRF)攻击...