程序中的sql语句变量都加了单引号,数据从url提交的时候会被过滤掉单引号和\,这样还会被注入吗?我用的是mysql数据库。

解决方案 »

  1.   

    用javascript进行非法字符过滤例如:
    function checkPop(value) {
    if (value.length > 0) {
    var rule = /[\\~!@$^&%*=+?><;#]/;
    if (rule.test(value)) {
    return false;
    }
    return true;
    }
    }
      

  2.   

    to goldlive_8888
    我是在参数传进函数的时候,在doget方法里实例化过滤的对象进行过滤。
    to little06
    我想了很久,按注入的思想,如果有单引号,要闭合,可是所有输入的单引号都在到函数之前被过滤了。用acsii和十六进制也不行,虽然不会被过滤,但是在sql语句里都被放到单引号里,变成字符穿了,没有办法还原成单引号。你说的可能有哪些方面,可以详细说说吗?
      

  3.   

    好像jstl中的<sql:query>可以有效防止SQL注入,你可以看它是怎么实现的