Подвержены ли параметризованные статические / кодовые операторы SQL атакам с использованием SQL-инъекций?
Например, допустим, у меня есть следующая упрощенная хранимая процедура: факт, что я передаю входные данные @ PSeries_desc означает, что я подвержен инъекционным атакам, если они параметризованы?Ранее это был динамический оператор SQL, и код выполнялся с использованием exec
, а не sp_executesql Таким образом, он определенно был открыт для атак.
CREATE procedure get_product_by_title
@PSearchType int = NULL
, @Pseries_desc varchar(40) = NULL
as
begin
declare
@whereLikeBeg varchar(1)
, @whereLikeEnd varchar(1)
set @whereLikeBeg = ''
set @whereLikeEnd = ''
if @search_code = 'contains'
begin
set @whereLikeBeg = '%'
set @whereLikeEnd = '%'
end
if @search_code = 'starts_with'
begin
set @whereLikeEnd = '%'
end
select
distinct B.parent_product_id
, B.parent_product_id
from
tableA
where
parent_product_id = child_product_id
and product_title like @whereLikeBeg + @Pseries_desc + @whereLikeEnd
end