Я использую asp.net mvc 3 с WCF с EF 4.1 с Sql Azure. Я создаю поисковую систему для моего приложения. и использование динамического Linq для построения запросов. Я хочу избежать инъекции sql в этом сценарии. Какова лучшая практика для того же? Какие меры предосторожности я должен предпринять в этом сценарии?
Пока вы строите свои запросы через LINQ, вы не уязвимы для SQL-инъекций.Хотя это не означает, что ваш код неуязвим для ВСЕХ видов атак (грубые пароли и т. Д.), Вы не будете уязвимы для внедрения SQL.
Динамический LINQ автоматически защищает от атаки SQL-инъекцией, даже если вы строите свои аргументы с использованием Request.QueryString и т. Д.
Вы можете добавить свой собственный базовый уровень проверки, убедившись, что входные строки не содержат";"символ, который обычно используется в SQL-инъекции для разрешения ввода пользовательских SQL-запросов.
См. также http://www.codeproject.com/KB/database/SqlInjectionAttacks.aspx.