#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, чтобы узнать больше.