SQL注入的防范
转载:http://blog.sina.com.cn/s/blog_5e5d98b50100dna3.html
1.不要使用sa用户连接数据库
2、新建一个public权限数据库用户,并用这个用户访问数据库
3、[角色]去掉角色public对sysobjects与syscolumns对象的select访问权限
4、[用户]用户名称-> 右键-属性-权限-在sysobjects与syscolumns上面打“×”
5、通过以下代码检测(失败表示权限正确,如能显示出来则表明权限太高):
DECLARE   @T   varchar(255),
@C   varchar(255)
DECLARE   Table_Cursor   CURSOR   FOR
Select   a.name,b.name   from   sysobjects   a,syscolumns   b
where   a.id=b.id   and   a.xtype= 'u '   and   (b.xtype=99   or   b.xtype=35   or   b.xtype=231  or   b.xtype=167)  
OPEN   Table_Cursor
FETCH   NEXT   FROM   Table_Cursor   INTO   @T,@C
WHILE(@@FETCH_STATUS=0)
BEGIN   print   @c
FETCH   NEXT   FROM   Table_Cursor   INTO   @T,@C  
END
CLOSE   Table_Cursor
DEALLOCATE   Table_Cursor
另外,总结如下:
1.尽量使用参数化查询
2.把一个单引号换成两个单引号
3.数据库权限的控制
4.过滤特殊字符串(如 select/update/drop/...)转载(http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html)
5.使用httputility.HtmlEnCode对输入的内容进行编码,彻底禁用其中的标签,然后对有用标签的进行replace还原。(.aspx页面 validateRequest=true 默认禁止)
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号