servlet过滤器防xss,sql注入.filter里修改parameter参数
来源:互联网 发布:three.js vr全景漫游 编辑:程序博客网 时间:2024/05/29 14:03
这中间起到最关键作用的就是HttpServletRequestWrapper
首先创建一个类继承HttpServletRequestWrapper。然后重写getAttribute,getParameter,getParameterValues,getParameterMap这几个方法。
public class OpRequestWrap extends HttpServletRequestWrapper { public OpRequestWrap(HttpServletRequest request) { super(request); } private String format(String name) { return StringUtils.replaceEach(name,// new String[]{"\"","'","<",">"}, // new String[]{""","´","<",">"}); //return StringEscapeUtils.escapeHtml4(name); } /** * * @param name * @return */ public Object getAttribute(String name) { Object value = super.getAttribute(name); if (value instanceof String) { value = format(String.valueOf(value)); } return value; } /** * 重写getParameter方法 * * @param name * @return */ public String getParameter(String name) { String value = super.getParameter(name); if (value == null) return null; return format(value); } /** * * @param name * @return */ public String[] getParameterValues(String name) { String[] values = super.getParameterValues(name); if (values != null) { for (int i = 0; i < values.length; i++) { values[i] = format(values[i]); } } return values; } /** * @return */ public Map<String, String[]> getParameterMap() { HashMap<String, String[]> paramMap = (HashMap<String, String[]>) super.getParameterMap(); paramMap = (HashMap<String, String[]>) paramMap.clone(); for (Iterator iterator = paramMap.entrySet().iterator(); iterator.hasNext(); ) { Map.Entry<String,String[]> entry = (Map.Entry<String,String[]>) iterator.next(); String [] values = entry.getValue(); for (int i = 0; i < values.length; i++) { if(values[i] instanceof String){ values[i] = format(values[i]); } } entry.setValue(values); } return paramMap; }}
然后配置一个过滤器;
@Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { filterChain.doFilter(new OpRequestWrap((HttpServletRequest) servletRequest),servletResponse); }
请仔细看doFilter里面的request,这一步也很重要。它是对request进行包装,才能起到修改request中参数,属性的功能。
0 0
- servlet过滤器防xss,sql注入.filter里修改parameter参数
- java 过滤器filter防sql注入
- java 过滤器filter防sql注入
- java 过滤器filter防sql注入
- 防止常见XSS 过滤 SQL注入 JAVA过滤器filter
- XSS防脚本注入的过滤器
- 在Kisso里,找出的防SQL注入 - 过滤 XSS SQL 注入
- 常见web漏洞——防止常见XSS 过滤 SQL注入 JAVA过滤器filter
- sql防注入攻击与xss攻击
- PHP 防SQL注入和XSS攻击
- php防sql注入和xss攻击
- Java Filter过滤XSS注入非法参数
- PHP "完美"的防XSS 防SQL注入的代码
- PHP "完美"的防XSS 防SQL注入的代码
- PHP中防XSS攻击和防sql注入
- PHP "完美"的防XSS 防SQL注入的代码
- 防止SQL注入和XSS攻击Filter
- 防止SQL注入和XSS攻击Filter
- linux命令之grep用法
- jxls操作excel文件
- javascript基础一
- javaScript概念学习
- 创建本地索引和全局索引
- servlet过滤器防xss,sql注入.filter里修改parameter参数
- myeclipse 启动weblogic: java.lang.OutOfMemoryError: PermGen space
- 关于在vc6.0中使用set_new_handler的问题
- junit测试入门实例
- 黑马程序员_学习笔记第6天——静态、单例
- C# 阴影复制
- C语言--break语句和continue语句
- linux之cut用法
- 一些简单的编程练习题