java使用正则表达式过滤sql注入
现有项目有大量的后台查询没有使用预处理,所以前台必须使用过滤器对参数做过滤以防止sql注入。
缺点,对于 UPDATEOK,BORD 这样的参数也会被过滤掉,对于/**/ 或者 /**ABC*/就很难做出判定了。
最后要注意的是对参数做匹配之前,先要做下decode处理:String qurystr = req.getQueryString()==null?"": req.getQueryString();if (!qurystr.equals("")) { try {qurystr = java.net.URLDecoder.decode(qurystr); } catch (Exception e1) {qurystr = httpReq.getRequestURI(); }}