XSS跨站脚本过滤器

转载 2018年04月16日 17:27:51

1.在web.xml中配置过滤器:拦截所有的请求--项目中使用通过安全扫描

<filter>  
        <filter-name>XssEscape</filter-name>  
        <filter-class>com.sunrise.grid.xss.filter.XssFilter</filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>XssEscape</filter-name>  
        <url-pattern>/*</url-pattern> 

    </filter-mapping>


2、过滤器具体的实现代码如下(实现类):-------------------

package com.sunrise.grid.xss.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;  


import org.apache.commons.lang3.StringUtils;




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 {  
    System.out.println("xss----start------");
    String requestURIName=((HttpServletRequest) request).getRequestURI();
if(!requestURIName.endsWith(".xml") && !requestURIName.endsWith(".properties")){
chain.doFilter(new XssHttpServletRequestWrapper((HttpServletRequest) request), response); 

        
}
   

       
    }  
  
    @Override  
    public void destroy() {  
    }  
    
 
    
}  



3、拦截器的具体处理代码方式(拦截器处理类):--------------------------------------------------

package com.sunrise.grid.xss.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);  
    }  
      
}  


ASP.NET 下 XSS 跨站脚本攻击的过滤方法

做 WEB 开发当然要防止跨站脚本攻击了,尤其是开发BLOG、论坛、购物平台等可以让用户添加自定义内容的网站。 有些开发者选择了将所有Html内容都过滤掉,但是这些不适合有些需要将自定义内容开放...
  • lxfan
  • lxfan
  • 2012-11-08 15:21:10
  • 4325

WEB解决跨站脚本攻击过滤器

使用antisamy来过滤参数值,过滤到可疑的html及script标签, 过滤器XSSFilter源码如下; import java.io.IOException; import javax....
  • riapgypm
  • riapgypm
  • 2016-11-07 13:55:38
  • 2355

XSS(跨站脚本攻击)漏洞解决方案

昨天师傅通知我,上周提交的代码中发现了XSS漏洞,让我解决一下,作为小白鼠的我还是硬着头皮寻东问西的找人找解决方案,最终在公司两位前辈的指导下重写了代码解决了这个漏洞。现汇总如下: 首先,简单介绍一...
  • sdauzyh
  • sdauzyh
  • 2017-07-11 11:23:34
  • 1376

jsp过滤非法字符输入 防止XSS跨站攻击

一。写一个过滤器   代码如下:   package com.liufeng.sys.filter;   import java.io.IOException; import java....
  • zxaini2010
  • zxaini2010
  • 2017-04-12 17:47:42
  • 924

跨站脚本攻击(XSS)——常见网站攻击手段原理与防御

主要是依靠一切可能的手段,将浏览器中可以执行的脚本(javascript)植入到页面代码中,从而对用户客户端实施攻击。这才是我认为在目前这个“大前端时代”xss攻击的定义。 实际上黑客攻击这种行为从本...
  • guugle2010
  • guugle2010
  • 2016-04-10 01:09:17
  • 3029

javaweb——解决XSS跨站脚本攻击的方法

1.编写一个过滤器处理转义字符,防止SQL注入package com.xinrui.flower.filter;import java.io.IOException;import javax.serv...
  • lzc4869
  • lzc4869
  • 2016-03-20 11:35:41
  • 2639

XSS跨站脚本漏洞修复建议- 如何防御CSS CrossSiteScript 跨站脚本攻击

XSS跨站脚本漏洞修复建议- 如何防御CSS CrossSiteScript 跨站脚本攻击 小心XSS跨站脚本漏洞 Web的安全问题越来越严重,漏洞总是在不停的出现,而我们以前一直在做的都是打...
  • yucaifu1989
  • yucaifu1989
  • 2017-03-14 15:14:02
  • 2418

跨站脚本攻击(XSS)几种解决方案浅析

一、概述        Cross-site scripting(CSS or XSS)跨站脚本不像其他攻击只包含两个部分:攻击者和web站点,跨站脚本包含三个部分:攻击者,客户和web站点。跨站脚本...
  • zmx729618
  • zmx729618
  • 2016-08-04 17:38:29
  • 7549

Web安全之XSS跨站脚本攻击

本文主要选择常见web攻击手段之一的XSS(跨站点脚本攻击)来进行讲解,说明其攻击原理,并提出相应的解决办法。XSSXSS 攻击,全称是“跨站点脚本攻击”(Cross Site Scripting),...
  • mevicky
  • mevicky
  • 2015-08-26 09:06:30
  • 2852

安全测试之XSS跨站脚本攻击

一、跨站脚本攻击的概念跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html...
  • quiet_girl
  • quiet_girl
  • 2016-01-28 13:52:16
  • 4255
收藏助手
不良信息举报
您举报文章:XSS跨站脚本过滤器
举报原因:
原因补充:

(最多只允许输入30个字)