以下 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