counter
counter

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 默认禁止)

posted @ 2013-03-11 17:09  bfy  阅读(149)  评论(0编辑  收藏  举报