SQL Server Dynamic SQL с предложением LIKE и SQL Injection

У меня динамически построенный SQL, как показано ниже. Мой вопрос: уязвим ли он для SQL Injection? Если да, как мне его исправить?

--search title only if @SearchType =2 BEGIN SET @strSQL = @strSQL + 'AND (IDownload.FileTitle LIKE ''%'[email protected]+'%'' ) ' END 

Да, проверьте:

 CREATE TABLE Test (Id int) GO CREATE TABLE IDownload (FileTitle nvarchar(100)) DECLARE @strSQL nvarchar(max) DECLARE @Search nvarchar(max) = 'a'') DROP TABLE Test --' SET @strSQL = 'SELECT 1 FROM IDownload WHERE 1 = 1 ' SET @strSQL = @strSQL + 'AND (IDownload.FileTitle LIKE ''%'[email protected]+'%'' ) ' PRINT @strSQL EXEC sp_executesql @strSQL DROP TABLE IDownload 

Я могу удалить таблицу Test проходящую специальную строку в @Search . Перепишите свой код с помощью процедуры и параметров sp_executesql .

  • Как избежать символа подчеркивания в аргументе шаблона PATINDEX?
  • Как найти «%» с оператором LIKE в SQL Server?
  • Полнотекстовый поиск vs LIKE
  • Повторение символов в режиме T-SQL LIKE
  • LIKE и NULL в выражении WHERE в SQL
  • SQL Server, используя LIKE для поиска столбца firstname для символов ""
  • Группировать с помощью LIKE Operator и игнорировать значение NULL
  • SQL WHERE Like Clause не возвращает все результаты
  • T-SQL LIKE с использованием переменных и индексов
  • Запрос SQL с похожим оператором из двух таблиц
  • Процедура SQL с LIKE
  • Interesting Posts

    белый круг в студии управления Microsoft Microsoft SQL Server 2012

    Является ли «Исключить из стандартного SQL»?

    Как вставить xml в узел в другом xml с помощью XQuery?

    sql local db не запускается – Err: поскольку он был первоначально отформатирован с размером сектора 4096 и теперь находится на томе с размером сектора 3072

    Как профиль для одной таблицы в SQL Server?

    Пакетный экстракт SQL Server DDL

    Как настроить SQL-профилировщик для профилирования служб отчетов SQL 2005

    Подключение к базе данных Microsoft SQL через VBA (ADODB) с наименьшим риском для повреждения базы данных

    Как повысить производительность запросов

    sql – переменное хранилище

    Подведение итогового отчета с проверкой значения в переменной таблицы

    строки в столбцы

    имя таблиц и представлений в хранимой процедуре в sql server 2005

    SSIS: только что начал получать ошибку «Ключ недействителен для использования в указанном состоянии.» В моем запланированном пакете SSIS

    Неверное значение счетчика в подзапросе в столбце объединения таблицы

    Давайте будем гением компьютера.