Из вашего вопроса неясно, используете ли вы ORM, например, инфраструктуру сущностей, однако, судя по соглашениям об именах _context
и запросу Where linq, я думаю, что вы.
Ядро ASP.net не имеет встроенного средства предотвращения внедрения SQL как такового. Фактически Ядро Asp.net больше не имеет встроенной проверки правильности запроса .
Однако при использовании ORM имеет некоторые естественные средства предотвращения внедрения SQL :
LINQ to Entities Атаки:
Хотя составление запроса возможно в LINQ to Entities, оно
выполняется через API объектной модели. В отличие от запросов Entity SQL,
Запросы LINQ to Entities не составляются с использованием строковых операций
или объединение, и они не восприимчивы к традиционному SQL
инъекционные атаки.
Это не тот случай, если вы выбрали выполнение SQL напрямую в ORM, поэтому это зависит от того, как вы его используете.
Безопасность следует рассматривать как «глубокую защиту», добавляя методы смягчения на каждом уровне или границе вашего приложения.
Простым примером для вашего варианта использования может быть ограничение имени разумными значениями, например, длиной не более X символов (30?), Без цифр и т. Д., Однако это легче сказать, чем сделать для интернационализация следовательно, даже если в Entity Framework обнаружена слабость, вы мешаете атакующему, предоставляя ему только ограниченный набор символов для атаки.
Я бы рекомендовал прочитать шпаргалку OWASP