Хранимая процедура с параметрами как предотвратить SQL Инъекция - PullRequest
0 голосов
/ 13 февраля 2020

Я создал хранимую процедуру, которая ищет таблицы на основе пользовательского ввода. Я думаю, что этот код подвержен риску внедрения SQL, поэтому я протестировал несколько запросов, которые я ожидал удалить таблицу, но, к моему удивлению, таблица не была удалена. Мне интересно, если этот запрос на самом деле хорошо или я что-то упустил?

DECLARE @Query VARCHAR(200) = ';DROP TABLE DeleteMe;--'

SELECT f.Name 
FROM [Firm] AS f
WHERE f.Name LIKE '%' + @Query + '%';

Я пробовал несколько запросов, все варианты на тему выше.

1 Ответ

0 голосов
/ 13 февраля 2020

Есть способы предотвратить SQL Внедрение:

1 Использование подготовленных операторов (с параметризованными запросами)
2- Использование хранимых процедур
3- Проверка ввода пользователя
4- Ограничение привилегии
5- Скрытие информации от сообщения об ошибке
6- Обновление системы
7- Хранение учетных данных базы данных отдельно и зашифровано
8- Отключение оболочки и других ненужных вам функций

Вы можете прочитать больше здесь: https://tableplus.com/blog/2018/08/sql-injection-attack-explained-with-example.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...