java防止页面脚本注入 特殊字符过滤器
2017-05-19 11:14
561 查看
转载自:http://yuncode.net/code/c_54a003069e20d32
Step1:自定义封装request |
package com.tsou.comm.servlet; |
import java.util.Enumeration; |
import java.util.Map; |
import java.util.Vector; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletRequestWrapper; |
/** |
* |
* |
* 功能:封装的请求处理特殊字符 |
* </p> |
* |
* |
* |
* |
*/ |
public class TsRequest extends HttpServletRequestWrapper { |
private Map params; |
public TsRequest(HttpServletRequest |
super (request); |
this .params |
} |
public Map |
return params ; |
} |
public Enumeration |
Vector new Vector( params.keySet()); |
return l.elements(); |
} |
public String[] |
Object |
if (v null ) { |
return null ; |
} else if (v instanceof String[]) { |
String[] |
for ( int i 0 ; |
value[i] "<" , "<" ); |
value[i] ">" , ">" ); |
} |
return (String[]) value; |
} else if (v instanceof String) { |
String |
value "<" , "<" ); |
value ">" , ">" ); |
return new String[] |
} else { |
return new String[] |
} |
} |
public String |
Object |
if (v null ) { |
return null ; |
} else if (v instanceof String[]) { |
String[] |
if (strArr.length 0 ) { |
String 0 ]; |
value "<" , "<" ); |
value "<" , ">" ); |
return value; |
} else { |
return null ; |
} |
} else if (v instanceof String) { |
String |
value "<" , "<" ); |
value ">" , ">" ); |
return (String) value; |
} else { |
return v.toString(); |
} |
} |
} |
Step2:设置过滤器 |
package com.tsou.comm.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 com.tsou.comm.servlet.TsRequest; |
/** |
* |
* |
* 功能:特殊字符过滤器 |
* </p> |
* |
* |
* |
* |
*/ |
public class CharacterFilter implements Filter{ |
@Override |
public void destroy() { |
} |
@Override |
public void doFilter(ServletRequest |
FilterChain throws IOException, |
HttpServletRequest |
TsRequest new TsRequest(request,request.getParameterMap()); |
chain.doFilter(wrapRequest, res); |
} |
@Override |
public void init(FilterConfig throws ServletException { |
} |
} |
Step3:拦截URL |
<filter> |
<filter-name> |
<filter- class > com.tsou.comm.filter.CharacterFilter</filter- class > |
</filter> |
<filter-mapping> |
<filter-name> |
<url-pattern> |
</filter-mapping> |
相关文章推荐
- 【原创】JAVA通过过滤器防止脚本注入
- JS防止脚本注入(替换特殊字符)
- 页面之间URL传值处理特殊字符防止特殊字符将参数截断
- java 过滤敏感词和特殊字符 防止sql注入
- 文本入库特殊字符处理, 防止SQL注入
- 页面因脚本代码中含有特殊字符未能通过W3C校验的解决方法
- 使用jquery ajax对特殊字符进行转义,防止js注入
- 利用简单的过滤器 过滤特殊字符实现 防止XSS攻击
- java 过滤器(过滤客户端表单特殊字符、服务器端特殊字符、以及编码过滤)
- 使用jquery对特殊字符进行转义,防止js注入
- 使用jquery对特殊字符进行转义,防止js注入
- sql特殊字符转义处理,防止注入
- java类过滤器,防止页面sql注入
- 如何使用jquery对特殊字符进行转义,防止js注入
- Java防止跨站脚本(XSS)注入攻击
- java防止xss脚本注入攻击,采用spring工具类方式
- JAVA去除web页面传入后台的特殊字符工具类
- sql特殊字符转义处理,防止注入