我的网站被无情的sql注入了。。是从URL里注入的。。 请问各位大侠们。有没有什么方法能防范住SQL URL注入的。。有代码吗? 非常着急 ,在线等各位·~ 麻烦知道的帮忙解决下·· 谢谢了·!

解决方案 »

  1.   

    不要使用+拼接sql语句,
    带参数的sql语句尽量参数化,
    屏蔽" ' , ; < > + = 等等这些可能存在注入的特殊字符。
      

  2.   

    用拼接的sql时替换掉里面的"'"字符,这在一定程度上能减少sql注入!
    form提交的时候用post方式,因为get方式提交的时候参数等显示在地址栏中!个人观点!
      

  3.   

    个人观点:使用PreparedStatement进行参数赋值
      

  4.   

    PreparedStatement
      

  5.   

    1、PreparedStatement
    2、过滤特殊字符
      

  6.   

    以前在学校维护网站也经常碰到SLQ注入,上面的方法可以试一下
      

  7.   

    使用 PreparedStatement 的 ? ? ? 就可以避免 SQL 注入。如果你是用 + 拼接查询字符串的话,那么 SQL 注入是势必会出现的。
      

  8.   

    1、用post请求
    2、数据端用PreparedStatement来执行sql,而且sql不能用拼接的。用“?”来代替变量。
      

  9.   

    确实得用prestatement这个,但是与post和get确实没有一点关系。get也有他的好处嘛,get方式提交的页面容易被人拷贝用以宣传,而post用于安全,但是这个安全在防止注入方面也就是自欺欺人一下而已。prestatement用了无忧矣....
      

  10.   

    加个过滤器过滤所有url请求, *.do,*.jsp*.action之类的然后把sql关键字替换掉
      

  11.   

    赋值的时候用PreparedStatement,不要用字符串+连接
      

  12.   

    楼上回答能够解决楼主的sql注入问题了。
      

  13.   

    测试输入的大小和数据类型,强制执行适当的限制。这有助于防止有意造成的缓冲区溢出。测试字符串变量的内容,只接受所需的值。拒绝包含二进制数据、转义序列和注释字符的输入内容。这有助于防止脚本注入,防止某些缓冲区溢出攻击。使用 XML 文档时,根据数据的架构对输入的所有数据进行验证。绝不直接使用用户输入内容来生成 Transact-SQL 语句。使用存储过程来验证用户输入。在多层环境中,所有数据都应该在验证之后才允许进入可信区域。未通过验证过程的数据应被拒绝,并向前一层返回一个错误。实现多层验证。对无目的的恶意用户采取的预防措施对坚定的攻击者可能无效。更好的做法是在用户界面和所有跨信任边界的后续点上验证输入。