公司网站是老古董了,jsp+tomcat,字符串组装sql语句,存在注入漏洞。最近增加了一个函数处理页面提交的参数,除了对 + - ' () <> 等特殊符号进行转全角外,是否有必要再过滤 select 、delete 、drop 等关键字?

解决方案 »

  1.   

    安全起见,还是过滤吧~~~用正则表达式根据标准SQL语句来过滤咯。
      

  2.   

    不要直接拼装sql然后用statement执行,用prepareStatement,这样之后基本没问题了
      

  3.   

    好像  过滤没人用了  
     一般用2楼的方法
       PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
                                         SET SALARY = ? WHERE ID = ?");
       pstmt.setBigDecimal(1, 153833.00)
       pstmt.setInt(2, 110592)jdk  api 上的
      

  4.   

    还是过滤一下的好!不过既然修改了,就直接使用PreparedStatement得了
      

  5.   

    安全,相当重要,如果都用存储过程的话
    select 、delete 、drop 还有insert 等,统统过滤掉