Возможно ли внедрение SQL в следующем запросе - PullRequest
0 голосов
/ 31 мая 2019

Итак, я проверяю некоторый код, и Fortify помечает следующий запрос как SQL Injectible

"select"+seqName+".NEXTVAL from DUAL;"

Ответы [ 2 ]

3 голосов
/ 31 мая 2019

Да, абсолютно.Это в основном архетипический пример уязвимости SQL Injection.

Если seqName - это что-то вроде " * from User_passwords; --", то выбор будет запрашивать любую таблицу, используемую в seqName.

Конечно, это может не применяться, если seqName из безопасного источникаНапример, какой-то жестко закодированный список внутри программы.

2 голосов
/ 31 мая 2019

Чтобы избежать внедрения SQL, вам нужно установить значение строки перед конкатенацией в операторе, что можно сделать с помощью одной из подпрограмм dbms_assert, например, DBMS_ASSERT.SQL_OBJECT_NAME

...