Как очистить динамический SQL в SQL Server - предотвратить внедрение SQL

У нас есть тонна хранимых процедур SQL Server, которые полагаются на динамический SQL.

Параметры хранимой процедуры используются в динамическом операторе SQL.

Нам нужно стандартная функция проверки внутри этих хранимых процедур для проверки этих параметров и предотвращения внедрения SQL.

Предположим, у нас есть следующие ограничения:

  1. Мы не можем переписать процедуры, чтобы не использовать динамический SQL.

  2. Мы не можем использовать sp_OACreate и т.д., чтобы использовать регулярные выражения для проверки.

  3. Мы можем ' t изменить приложение, которое вызывает хранимую процедуру, чтобы проверить параметры перед их передачей в хранимую процедуру.

Есть ли набор символов, которые мы можем отфильтровать, чтобы гарантировать, что мы не подвержены SQL-инъекции?

9
задан marc_s 5 November 2010 в 06:10
поделиться