Если вы используете laravel ORM для создания sql запросов, ваши запросы автоматически защищены от sql инъекций.
Например:
$restaurant = Restaurant::where('id', $id)->first();
Этот запрос созданный laravel ORM, и если вы запустите dd(Restaurant::where('id', $id)->toSql())
, вы увидите, что идентификатор не вводится непосредственно в запрос:
SELECT * FROM restaurants WHERE id = ?
Вы можете запустить sql необработанных запросов, используя DB::select()
или DB::raw()
... et c. Если вы посмотрите документацию laravel, то увидите, что у каждого необработанного метода есть параметр массива, обычно второй параметр. Например:
DB::select('SELECT * FROM restaurants WHERE id = ?', [$id]);
Restaurant::whereRaw('id = ?', [$id])->first();
...
DB::raw('SELECT * FROM restaurants WHERE id = ?', [$id]);
Каждый из указанных выше запросов защищен от sql инъекций.
Не пишите подобные запросы DB::select("SELECT * FROM restaurants WHERE id = $id");
Это может быть чрезвычайно опасно для вашего приложения .
Дополнительную информацию смотрите здесь: https://laravel.com/docs/5.8/database#running -просмотр
Надеюсь, это поможет.