Предотвращение внедрения Sql в laravel

#laravel #eloquent #sql-injection

#sql #laravel #внедрение зависимостей #sql-инъекция

Вопрос:

Я новичок в Laravel и изучаю его.

Что мы делаем в laravel, чтобы предотвратить внедрение sql?? Что такое внедрение зависимостей и что мы делаем, чтобы предотвратить это?

Заранее спасибо

Комментарии:

1. в laravel есть множество уровней для предотвращения этого .. просто сделайте это правильно и посмотрите Документы.

Ответ №1:

SQL-инъекция — это плохо. Внедрение зависимостей — это хорошо. и это две разные вещи. SQL-инъекция — это атака. Внедрение зависимостей — это метод, используемый в программировании.

Laravel использует PHP PDO для построения запроса запуска. Так что не беспокойтесь слишком сильно о SQL-инъекции, если вы не делаете это неправильно.

Прочитайте о сервисном контейнере , чтобы узнать о внедрении зависимостей Laravel.

Ответ №2:

Если вы используете Eloquent повсюду, как правило, внедрение SQL-инъекций не будет проблемой, с одной оговоркой.

Существуют красноречивые методы, которые позволяют записать часть запроса в виде необработанного SQL, такие как whereRaw() и selectRaw() . Если вы используете их и передаете запрос в виде строки со значениями, включенными как есть, вы уязвимы для внедрения SQL, как в этом примере:

 whereRaw("name = '$name'")
  

Однако эти методы позволяют использовать подготовленные инструкции, передавая в качестве второго аргумента массив значений:

 whereRaw("name = ?", [$name])
  

Делая это, вы должны быть в безопасности от SQL-инъекций.

Внедрение зависимостей — это совершенно отдельная тема, и я бы хотел, как и aimme, указать вам на документацию Laravel, чтобы узнать больше.