关于sql注入问题,希望各位大侠给个帮助,就是很简单的那种:
      1:做一些关键字的过滤,如select等等。
      2:尤其是做字符的转换 :单引号变成双引号。
      3:我们现在用的是页面jsp。具体应该怎么写,希望各位大侠给个例子。本人是第一次接触这些东西,根本不知道怎么写。
本人结贴率100%。      [email protected]  发邮箱里也可以。谢谢了

解决方案 »

  1.   

    判断是否存在字符indexof 一个个替换
      

  2.   

    既然用JAVA写的,你应该知道有个东西叫SQL预编译吧int id=1;
    String sql = "select from table where id=?";
    Connection con = db.getCon();
    PreparedStatement ps = con.prepareStatement(sql);
    ps.setInt(1, id);
    ResultSet rs=ps.executeQuery();大概是这样的,SQL用?占位,然后set入数值免疫目前已知的所有注入,JAVA特有的。
      

  3.   

    恩  直接jdbc可以起到这个作用。具体来说那就是现在我们用的ibeats,那么请求来的sql语句是不是要一个一个的做sql预编译啊?sql很多的?而且有的话也不知道怎么用,各位老大能具体给个例子吗?可以很通用的过滤关键字  和 ‘的
      

  4.   


    我在ASP和PHP理没有发现有类似的方法类似的解决方案
      

  5.   


    ibeats我没有用过并不清楚,我记得HIBERNATE里也支持用?来做SQL语句占位符然后SET值。我想ibeats也应该有类似的东西。刚才我在百度上粗略查了一下,没有发现ibeats支持预编译的情况,恐怕你们只能使用加入拦截器过滤的方式来防止注入了。具体的防注入代码可以去搜索下ASP和PHP的防注入,那个应该对你有所帮助。只用过滤来防止注入的方式遇到高手后很容易被注入,好像是通过转义等东西进行手工注入,具体的我也不是很清楚
      

  6.   

    好了 基本上是搞定了,  现在结贴兄弟们都有份
    重新发新帖,问题继续   换新问题:就是把上面做的东西放入到webwork的拦截器中,不过还是不会做啊,菜鸟真可怕啊  继续!!