Безопасно ли использовать DbCommand.CreateParameter? - PullRequest
0 голосов
/ 07 апреля 2019

Я хочу спросить вас, если я использую этот метод ( DbCommand.CreateParameter ) в C # для передачи значения моих параметров в мои хранимые процедуры, тогда я снова безопасен для SQL-инъекции?Или что я могу сделать иначе против SQL-инъекции?

Заранее большое спасибо!

1 Ответ

2 голосов
/ 07 апреля 2019

Объекты параметров SQL Server всегда защищены от внедрения SQL, за исключением динамического SQL на стороне сервера с использованием значений параметров.Это связано с тем, что параметризованные запросы выполняются как вызов RPC по протоколу TDS .Значения параметров передаются отдельно от оператора в собственном формате и не анализируются сервером как SQL.Поскольку значения параметров не анализируются как элементы языка SQL, эти значения не могут быть выполнены, и уязвимости SQL-инъекций не существует.

Также лучше указывать хранимую процедуру типа команды в качестве дополнительного уровня безопасности при вызове хранимой процедуры.процедуры.Это гарантирует, что в качестве текста команды и параметров, передаваемых отдельно, указывается только имя хранимой процедуры.В противном случае разработчик может непреднамеренно создать текстовую строку команды небезопасным способом (т. Е. Содержащим как маркеры параметров, так и литеральные значения из ненадежного источника или даже вообще не использовать параметры).

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