【发布时间】:2011-01-11 16:44:12
【问题描述】:
以下 SQL 是否容易通过 @SearchWord 参数进行 SQL 注入?
我想在 FormsOf 函数中使用参数,但我发现这样做的唯一指南是这个 Stack Overflow 问题:How to pass parameter to FormsOf function in sql server
但是解决方案似乎是使用一些动态 SQL,我想知道这是否容易受到 SQL 注入的影响。如果@searchWord 包含 SQL 注入类型字符串,以下示例中会发生什么情况?这不是问题,因为它仍然在一个参数中,作为参数传递给 FREETEXTTABLE?
给出的解决方案是:
DECLARE @SearchWord nvarchar(max)
SET @SearchWord = 'tax'
DECLARE @SearchString nvarchar(max)
SET @SearchString = 'FormsOf(INFLECTIONAL, "' + @SearchWord + '")'
SELECT listing_id, RANK, name, address, city, zip, heading, phone
FROM listings a,
FREETEXTTABLE(listings, *, @SearchString)
WHERE [KEY] = a.listing_id
ORDER BY RANK DESC, name
【问题讨论】:
标签: tsql full-text-search sql-injection formsof