Java Web 一些特殊字符的过滤(appscan检查的安全问题)
来源:互联网 发布:金税盘怎么恢复数据 编辑:程序博客网 时间:2024/05/21 03:18
适用于出现以下问题:
1、SQL盲注
2、存储的跨站点脚本编制 或 跨站点脚本编制
import java.io.IOException;import java.util.Enumeration;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 javax.servlet.http.HttpServletResponse;public class AntiSqlInjectionfilter implements Filter { public void destroy() { // TODO Auto-generated method stub } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } public void doFilter(ServletRequest args0, ServletResponse args1, FilterChain chain) throws IOException, ServletException { HttpServletRequest req=(HttpServletRequest)args0; HttpServletResponse res=(HttpServletResponse)args1; //获得所有请求参数名 Enumeration params = req.getParameterNames(); String sql = ""; while (params.hasMoreElements()) { //得到参数名 String name = params.nextElement().toString(); //System.out.println("name===========================" + name + "--"); //得到参数对应值 String[] value = req.getParameterValues(name); for (int i = 0; i < value.length; i++) { sql = sql + value[i]; } } //System.out.println("============================SQL"+sql); //有sql关键字,跳转到error.html if (sqlValidate(sql)) { throw new IOException("您发送请求中的参数中含有非法字符:"+sql); //String ip = req.getRemoteAddr(); } else { chain.doFilter(args0,args1); } } //效验 protected static boolean sqlValidate(String str) { str = str.toLowerCase();//统一转为小写 String badStr = "'|select|update|and|or|delete|insert|truncate|char|into" + "|substr|declare|exec|master|drop|execute|" + "union|;|--|+|,|like|//|/|%|#|*|$|@|\"|http|cr|lf|<|>|(|)";//过滤掉的sql关键字,可以手动添加 String[] badStrs = badStr.split("\\|"); for (int i = 0; i < badStrs.length; i++) { if (str.indexOf(badStrs[i]) >= 0) { return true; } } return false; } }
0 0
- Java Web 一些特殊字符的过滤(appscan检查的安全问题)
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- Java过滤特殊字符的正则表达式
- 过滤特殊字符的方法
- js特殊字符的过滤
- Java 过滤Oracle的like条件的特殊字符
- java过滤特殊字符
- java 过滤特殊字符
- java 过滤特殊字符
- java 过滤特殊字符
- JAVA过滤特殊字符
- Java 过滤特殊字符
- java过滤特殊字符
- java过滤特殊字符
- 记录网址
- SELinux对网站目录权限控制的不当的问题
- js 实现定时对函数的调用setInterval()方法
- ListView的优化之复用convertView和利用ViewHolder
- 算法12—动态规划算法之:最长公共子序列 & 最长公共子串(LCS)
- Java Web 一些特殊字符的过滤(appscan检查的安全问题)
- Android github开源项目
- Android短信验证(手机号注册,绑定手机号获取验证码)实例
- HiBench运行spark用例报Initial job has not accepted any resources错误
- javascript的ajax请求过程
- java获取数组连续相同元素下标
- hive任务中MoveTask的策略
- 实现多次点击效果
- 懂,最是深情