Будет ли использование LINQ to SQL предотвращать SQL-инъекцию

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

В этом примере создается учетная запись пользователя.

Data.MemberRegistrationDataContext context = new MemberRegistrationDataContext(); Data.tbl_Member_UserProfile profile = new tbl_Member_UserProfile(); profile.SSN = Convert.ToDecimal(Session["tempMemberSSN_Registration"]); profile.UserName = userName; profile.Password = password; profile.EmailAddress = email; profile.QuestionID = qID; profile.QuestionResponse = securityAnswer; profile.LastModDt = DateTime.Now; profile.LastModBy = "web"; context.tbl_Member_UserProfiles.InsertOnSubmit(profile); context.SubmitChanges(); 

Этот пример изменяет пароль

  MemberRegistrationDataContext dc = new MemberRegistrationDataContext(); var mProfileRecord = dc.tbl_Member_UserProfiles.Single(c => c.SSN == sSSN); mProfileRecord.Password = sNewPassword; dc.SubmitChanges(); 

Являются ли они безопасными? LINQ параметризует SQL, который он генерирует автоматически?

Да, LINQ поможет остановить SQL-инъекцию.

LINQ to SQL передает все данные в базу данных с помощью параметров SQL. Таким образом, хотя SQL-запрос составлен динамически, значения подставляют серверную сторону через параметры, защищающие от наиболее распространенной причины атак SQL-инъекций.

Кроме того, см. « Устранение SQL-инъекций» с помощью LINQ для некоторой информации.

Тебе хорошо идти. Linq параметризует данные, которые он отправляет в базу данных.

Используйте свойство Log, чтобы проверить, что происходит: dc.Log = Console.Out;

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

  • Как сделать левое внешнее соединение с помощью Dynamic Linq?
  • Как создать динамический метод расширения соединения LINQ
  • Как сравнивать только даты без времени в типах DateTime в Linq to SQL с Entity Framework?
  • C # Linq-to-Sql - Если DataContext будет удален с помощью IDisposable
  • Как сделать полное внешнее соединение в Linq?
  • Условные запросы Linq
  • LINQ и разбиение на страницы
  • Возrotation IEnumerable против IQueryable
  • Как вернуть анонимный тип из метода c #, который использует LINQ to SQL
  • Лучший способ обновить classы LINQ to SQL после изменения схемы базы данных
  • Случайная строка от Linq до Sql
  • Давайте будем гением компьютера.