无法使用参数化查询时转义SQL字符串?

时间:2011-04-25 17:45:31

标签: c# .net sql-server string sql-injection

更新:另请参阅this preexisting question, and its answers,,此问题实际上是重复的。


我正在使用第三方API,它接受SQL语句的WHERE条件片段

e.g。 ThirdPartyFunction(where:"Category = 'abc'", top:5)

我有通过UI或Web服务传递的字符串,需要防止SQL注入攻击。

如果不使用参数化查询,并且在.NET框架中没有替代方法来转义SQL字符串(我知道),我希望手动转义SQL字符串。

我有关于编写转义方法的最佳方法的想法,但我正在寻找最安全的解决方案。

1 个答案:

答案 0 :(得分:1)

参数化查询肯定是最安全的,但你可以使用两个单引号替换任何单引号。因此,如果用户试图在'abc'部分内输入恶意查询,它会将其作为字符串处理。

您使用的是哪个第三方图书馆?您是否检查过以确保它们不能提供参数化调用方法的能力?