Контроль SQL-инъекций в MVC - PullRequest
       17

Контроль SQL-инъекций в MVC

9 голосов
/ 31 января 2012

Я впервые разрабатываю с использованием MVC, и я хочу сделать его безопасным.

Когда я использую HtmlEncode, он преобразует строку в эквивалентную строку HTML.

Пользователь может ввести в поленайдите, например, ali или ali, и они существуют в моей базе данных.Как контролировать мой поиск и вход в систему с помощью SQL-инъекции, пожалуйста?

Кроме того, какие-либо руководства или рекомендации по предотвращению внедрения скриптов?

Ответы [ 3 ]

15 голосов
/ 31 января 2012

LINQ и Entity Framework уже проверяют наличие SQL-инъекций для вас.

Но вы все равно должны прочитать документацию:

LINQ MSDN Link (раздел Атаки SQL-инъекцией)

Entity Framework MSDN Link (раздел Вопросы безопасности для запросов)

Надеюсь, это поможет!

8 голосов
/ 31 января 2012

Пока вы используете параметризованные запросы или ORM, такие как NHibernate или Entity Framework, вам не нужно ничего делать, чтобы предотвратить внедрение SQL. Параметры передаются на сервер вне фактического оператора SQL, как часть вызова RPC серверу. Большинство ORM используют параметризованные запросы для повышения производительности, поэтому они не уязвимы для внедрения SQL.

Внедрение SQL возможно только в том случае, если вы создаете оператор SQL путем объединения строковых значений.

Тем не менее, вы все равно должны быть осторожны с пользовательским вводом, чтобы предотвратить атаки с использованием скриптов. К счастью, ASP.NET MVC уже предоставляет механизм проверки запросов (см. Общие сведения о проверке запросов ).

4 голосов
/ 31 января 2012

Если вы используете LINQ для выполнения запросов к базе данных, это исключает риски внедрения SQL-кода для вас.

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