Прежде чем я прошу - я знаю о paranterised запросов, но этот вопрос специально baout регулярные выражения, чтобы предотвратить SQL-инъекцииМожет ли регулярное выражение быть использовано для предотвращения SQL Injection
Допустим, у меня есть строки запроса с В параметре из q
и у меня есть регулярное выражение ^201[0-9]Q[0-9]$
, которое я выполняю против параметра, который передается в SQL.
Будет ли это достаточным в качестве защиты или может использоваться регулярное выражение? Некоторые псевдо-код:
if NOT validateToken(quarter) then
sql = "EXEC dbo.spTest '"&quarter&"'"
end if
Благодаря
Зависит от того, как/где вы его проверяете и как вы вызываете базу данных после этого. –
Я всегда проверяю данные, прежде чем использовать их для вставки. Затем, если все критерии выполнены, только затем передавайте данные в виде массива на мой уровень БД, какой цикл проходит по массиву, и избегайте его/дезинфекции перед вставкой. – vaso123