怎么设置SQL2005防止SQL注入? 20zy13665886]

发布时间:2014-1-1 0:09:46
来源:分享查询网

我只知道“将系统视图(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:过滤其他敏感字符输入;

楼上的说的都是方法,其实一般两种:一种是动态sql语句(传参数之类的) 另一种是过滤掉多余的字符

SQL注入专题 http://topic.csdn.net/u/20081205/09/3dd06076-bcbe-45d4-998c-8999fdbe6fae.html

revoke select on sys.all_columns to t_user

哥再也不会在程序里直接 exec sql语句了,给你做个参考。 public void RunProcByCmdTran(string SQL, SqlParameter[] paramArray)         {             Tcmd.Connection = myConn;             Tcmd.CommandType = CommandType.Text;             Tcmd.CommandText = SQL;             foreach (SqlParameter p in paramArray)             {                 Tcmd.Parameters.Add(p);             }             Tcmd.ExecuteNonQuery();             Tcmd.Parameters.Clear();             //Dispose(myConn);         }

返回顶部
查看电脑版