日期:2014-05-17  浏览次数:20509 次

怎么设置SQL2005防止SQL注入?
我只知道“将系统视图(syscolumns)的Select权限设置成拒绝”;

设置好后,执行select a.name,b.name from sysobjects a,syscolumns b where a.id=b.id and a.xtype='u'
如果是不能执行的,说明已经设置好了

但是我怎么设置都没有作用,还是可以运行,查处字段来

请高手指点,关键地方是哪里?

详细的步骤该怎么设置?才能设置成功

------解决方案--------------------
1、严格控制sql用户权限
2、动态T-SQL处理语句中,如果涉及到变量,尽量使用sp_executesql,
通过参数传递进行处理,避免使用EXEC硬拼SQL语句;
------解决方案--------------------
1:限制输入文本字符的数量; 
2:替代或删除单引号; 
3:使用ADO或ADO.NET时使用对象参数集合; 
4:不用或少用动态sql语句;执行时必须进行合法性校验; 
5:不要使用任何特权的帐户连接数据库,以避免扩展存储过程进行攻击; 
6:过滤其他敏感字符输入;