Я имею дело с SQL-инъекцией, и мне нужно заменить параметры sql в тегах запросов coldfusion тегами cfquerparam.Для этого я сопоставляю все, что похоже на параметры в этом:
select * from table
where
test = #var2#,
test ='#var3#'
test2 like '%#test#%'
test3 like '%#test#'
test4 like '#test#%'
, но не
<cfqueryparam value="#test123#">
Текущее регулярное выражение, которое я имею:
[%']?#([^#]*)#['%]?
В настоящее время он найдет все параметры sql, но также и test123 в cfqueryparam.Что мне нужно сделать, и где у меня ничего не получается, это исключить #param#
в двойных кавычках.Итак, нет "#test123#"
, но все в порядке.
Я попытался добавить [^"]?
перед ним, но затем он также начинает выбирать другие символы перед совпадением.То же самое происходит сзади.
У кого-нибудь есть исправление для этого?