Безопасно ли использование ODBC {CALL} в SQL Server-Procedure от SQL-инъекции?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Безопасно ли использование ODBC {CALL} в SQL Server-Procedure от SQL-инъекции?

Сообщение Anonymous »

Я отвечаю за обеспечение старого проекта Windows C ++. Он использует класс MFC ODBC Cdatabase для взаимодействия с SQL-Server. Все операции DB запроса и вставки выполняются с использованием параметризованных хранимых процессов, поэтому кажется, что это хорошая практика. Br />CDatabase DB;
SQL.Format("{CALL InsertStoredProcedureXYZ('%s','%s')}", ParamStr1, ParamStr2);
DB.ExecuteSQL(SQL);
< /code>
Аналогичная вещь сделана для запросов: < /p>
CRecordset Recordset;
SQL.Format("{CALL QueryStoredProcedure('%s','%s')}", ParamStr1, ParamStr2);
Recordset.Open(CRecordset::forwardOnly, SQL, CRecordset::readOnly);
< /code>
Мое беспокойство заключается в том, что параметры, используемые для этих операторов, часто бывают непосредственно из параметров веб -API. Код выполняет какой -то простой скрининг параметров, в основном для замены '' 'и для проверки длины строки.
Я считаю, что {call sp ()} - ODBC вещь. Я не думаю, что у SQL-Server есть команда вызова. Итак, делает ли ODBC подготовка параметров, безопасных для инъекций, прежде чем вызовать хранимую процесс? Я также знаю, что вместо этого ODBC можно использовать для вызова хранимых процедур с использованием {call sp (?,?)} , за которым следует связывание параметров. Это кажется лучшей практикой, но переход на это потребовало бы огромного рефакторика много раз, когда код проекта готовит операторы вызовов. Не удалось найти ничего, что окончательно сообщает мне, могу ли я доверять строительству {call sp ()} строки непосредственно из параметров API. Это просто плохое старое здание заявления SQL, замаскированное под хорошую практику?

Подробнее здесь: https://stackoverflow.com/questions/794 ... -injection
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»