当前位置:  开发笔记 > 数据库 > 正文

动态SQL是否更容易受到SQL注入/黑客攻击?

如何解决《动态SQL是否更容易受到SQL注入/黑客攻击?》经验,为你挑选了1个好方法。

动态SQL是否更容易受到SQL注入/黑客攻击?如果是,如何预防?



1> Frederik Ghe..:

如果使用参数而不是字符串连接来指定过滤条件,则它不应该容易受到Sql注入的影响.

例如:

做这个:

string sqlQuery = "SELECT * FROM Persons WHERE Persons.Name LIKE @name";

SqlCommand cmd = new SqlCommand ( sqlQuery );
...
cmd.Parameters.Add ("@name", SqlDbType.VarChar).Value = aName + "%";

而不是这个:

   string sqlQuery = "SELECT * FROM Persons WHERE Persons.Name LIKE \'" + aName + "%\'";

第一个例子不容易被sql注入,但第二个例子非常容易受到攻击.

这同样适用于您在存储过程中使用的动态SQL.在那里,您可以创建一个使用参数的动态sql语句; 然后,您应该使用动态语句sp_executesql来指定参数.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有