以前对注入没有太注意
但后来网站给黑了一次,全部的数据都没用了所以现在下面是我对防注入的方法
大家看 这样做还有什么办法可以注入到1:不进行如sql="Select * from tab where name ='"+name+"'" //这种方法
   全都改为传参sql="Select * from tab where name =@name" //这种方法
2: 过滤关键字
   value="declare|exec|varchar|cursor|drop|creat|and|insert|select|delete|update|count|midmaster|truncate|'"
   这是网上的方法,但因为这里的单词都是常用的,过滤是很不实际的,
   那么就会替换的方法将上面的关键字全都做如下操作
   如:Delete用正则替换为D-e-l-e-t-e
   在数据库里面读取出来就用正则将D-e-l-e-t-e替换为Delete以上是我对数据库注入的解决方案 
请大家提提意见 并说一下你的想法谢谢
       

解决方案 »

  1.   

    2: 过滤关键字这条有很大的问题。。一个叫andy的用户从此登录不上了~~其实SQL注入防范很简单~~无非就是在注入点上做文章~~1.如果是数字类型的参数,判断类型,非数字报错~
    2.如果字符类型的参数,过滤单引号为两个单引号,使无法进行注入语句的构造,就成了~~其它的,还有什么能注?INSERT,UPDATE不存在注入点。
      

  2.   

    记得很早以前,NB联盟的小竹写过一个注入天书~~比较详细的介绍了注入的原理方法(包括手动猜解)以及防范~~找了个转的,你看看的http://blog.csdn.net/roach888/archive/2008/07/22/2690504.aspx
      

  3.   

    1. 防止注入可以试试后台对数据库的操作全部通过存储过程进行,调用的时候全部做传参处理。只要不拼接sql语法,风险小很多。2.楼主对第二种关键字替换的方式可能理解有误,这种方式不是在后台查询的时候使用的,而是对用户输入的数据进行校验时使用的。也就是说对用户所有可能的输入内容都需要进行校验,如果发现关键字就去掉,这样能从源头上防止注入的发生。