Chinaunix首页 | 论坛 | 博客
  • 博客访问: 88602
  • 博文数量: 18
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 108
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-05 18:26
文章分类

全部博文(18)

文章存档

2016年(2)

2015年(6)

2014年(10)

我的朋友

分类: Java

2015-10-13 11:45:27

nginx访问日志中发现了一些sql 注入的痕迹,写个拦截器过滤一下。

点击(此处)折叠或打开

  1. /**
  2.  * url sql 注入拦截器
  3.  * 
  4.  */
  5. public class SqlInjectIntercepter extends HandlerInterceptorAdapter{

  6.     private static final Logger log = Logger.getLogger(SqlInjectIntercepter.class);

  7.     @Override
  8.     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  9.         Enumeration<String> names = request.getParameterNames();
  10.         while (names.hasMoreElements()) {
  11.             String name = names.nextElement();
  12.             String values = request.getParameter(name).toLowerCase();
  13.             String badStr = "'|exec|execute|insert|select|delete|update|count|drop|*|master|truncate|" +
  14.                     "declare|sitename|net user|xp_cmdshell|;|+|like'|exec|execute|insert|create|drop|" +
  15.                     "table|from|grant|use|group_concat|column_name|" +
  16.                     "information_schema.columns|table_schema|union|where|select|delete|update|order|count|*|" +
  17.                     "master|truncate|declare|;|+|like|//|/|#";//过滤掉的sql关键字,可以手动添加
  18.             String[] badStrs = badStr.split("\\|");
  19.             for (int j = 0; j < badStrs.length; j++) {
  20.                 if (values.indexOf(badStrs[j]) >= 0) {
  21.                     log.info("URL-SQLInject-api:{"+request.getRequestURL()+request.getQueryString()+"}"+"---"+badStrs[j]);
  22.                     response.setContentType("application/json; charset=UTF-8");
  23.                     UnifiedResponse res = new UnifiedResponse();
  24.                     res.setStatus(UnifiedResponseCode.RC_FAIL);
  25.                     res.setMessage("You are a bad boy!");
  26.                     response.getWriter().print(new Gson().toJson(res));
  27.                     return false;
  28.                 }
  29.             }
  30.         }
  31.         return true;
  32.     }

  33. }




阅读(4173) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~