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

使用Like运算符在使用Like运算符的SQL查询中避免SQL注入?

如何解决《使用Like运算符在使用Like运算符的SQL查询中避免SQL注入?》经验,为你挑选了2个好方法。

从我的前任接收一些代码,我发现了一个使用Like运算符的查询:

SELECT*FROM供应商WHERE supplier_name喜欢'%'+ name +%';

试图避免SQL注入问题和参数化这个但我不太确定如何实现.有什么建议 ?

请注意,我需要一个经典ADO.NET的解决方案 - 我真的没有将这些代码转换为类似LINQ的东西.



1> craigb..:

试试这个:

var query = "select * from foo where name like @searchterm";
using (var command = new SqlCommand(query, connection))
{
  command.Parameters.AddWithValue("@searchterm", String.Format("%{0}%", searchTerm));
  var result = command.ExecuteReader();
}

该框架将自动处理引用问题.



2> Matt Hamilto..:

只需参数化您的查询:

SELECT * FROM suppliers WHERE supplier_name like '%' + @name + '%'

现在,您可以将"name"变量传递给@name参数,查询将在没有任何注入攻击危险的情况下执行.即使你传递了类似"'或者真实 - "的东西,它仍然可以正常工作.

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