Может ли следующий SQL быть подверженным внедрению SQL через параметр @SearchWord?
Я хочу использовать параметры с функцией FormsOf, но единственное руководство для этого я нашел в этом вопросе переполнения стека: Как передать параметр в функцию FormsOf на сервере sql
Однако решение, похоже, заключается в том, чтобы использовать немного динамического 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