请问在开发设计jsp程序时怎样更好的防sql注入?
我用的数据库是oracle

解决方案 »

  1.   

    1、PreparedStatement
    2、正则表达式
    3、屏蔽单引号
      

  2.   

    不 明白什么意思么啊?
    Statement是语句注入
     PreparedStatement是动态的注入,一样的效果么,
    楼上说的3正确, 屏蔽单引号
      

  3.   

    PreparedStatement 是正解,有无 ' 没事
      

  4.   

    如果写成下面的方式,可能发生SQL注入:
       select count(*) from tb where id='[id]' and pwd='[pwd]'
       boolean valid = rs.getInt("count(*)")>0;但如果写成下面这种形式,还能顺利进入系统吗?
       select pwd from tb where id='[id]'
       boolean valid = rs.getString("pwd").equals('[pwd]'));当然不说恶意破坏。
      

  5.   

    PreparedStatement 代替 statement sql语句不要出现拼字符串
      

  6.   

    不要把字段名称直接暴露在URL上啊,另外,非注册用户浏览页面时,尽量让他们看已经生成好的静态画面。
    具体例子就要你自己搜了。
      

  7.   

    我就是用的正则表达式
    呵呵
    用的是struts的验证框架
      

  8.   

    要不给注入的话最好的办法就是用mvc设计模式,jsp纯粹显示,这样就不会给攻击了
      

  9.   

    PreparedStatement很好,谢谢楼上各位
      

  10.   

    用框架最好了,别人都把这些考虑进去了.PreparedStatement这个是最简单又比较有效的