zoukankan      html  css  js  c++  java
  • servlet Filter过滤javascript

    新建HttpServletRequestWrapper子类XssHttpServletRequestWrapper

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    
    public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
    	public XssHttpServletRequestWrapper(HttpServletRequest request){
    		super(request);
    	}
    
    	public String[] getParameterValues(String parameter){
    		String[] values = super.getParameterValues(parameter);
    		if(values==null){
    			return null;
    		}
    		int count = values.length;
    		String[] encodedValues = new String[count];
    		for (int i = 0;i<count;i++){
    			encodedValues[i] = this.cleanXss(values[i]);
    		}
    		return encodedValues;
    	}
    
    	public String getParameter(String parameter){
    		String value = super.getParamerter(parameter);
    		if(valuee == null){
    			return null;
    		}
    		return cleanXss(value);
    	}
    
    	private String cleanXss(String value){
    		value = value.replaceAll("<","&lt").replaceAll(">","&gt");
    		value = value.replaceAll("script","");
    		return value;
    	}
    }
    

     在Fileter中调用

    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class HttpMethodFilter implements Filter {
        public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException {
            HttpServletRequest hsreq = (HttpServletResponse) request;
            HttpServletResponse hsrep = (HttpServletResponse) response;
            chain.doFilter(new XssHttpServletRequestWrapper((HttpServletRequest) request),response);
        }
    }
  • 相关阅读:
    bzoj2946 [Poi2000]公共串(SA,SAM)
    77 最长公共子序列
    C++ lower_bound 与 upper_bound 函数
    76 最长上升子序列
    75 寻找峰值
    C++标准输入问题
    74 第一个错误的代码版本
    73 前序遍历和中序遍历树构造二叉树
    72 中序遍历和后序遍历树构造二叉树
    71 二叉树的锯齿形层次遍历
  • 原文地址:https://www.cnblogs.com/live365wang/p/5893597.html
Copyright © 2011-2022 走看看