SQL-инъекция и Laravel

#database #laravel #code-injection

Вопрос:

Недавно я читал о SQL-инъекциях, и я хотел бы знать, подвержен ли подобный код ошибочным запросам.

 DB::table($table)->select('*')->where('nome', 'LIKE', '%' . $_GET['search'] . '%')->get()
 

Большое спасибо.

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

1. Нет, это не так. $_GET['search'] будет экранирован, если вы используете where() функцию. Вы все равно должны проверять вводимые пользователем данные, когда это возможно, но вам нужно беспокоиться о внедрении SQL только при использовании необработанных функций. ( DB::raw() , selectRaw() , whereRaw() , groupByRaw() и havingRaw ). И даже в этом случае эти функции предоставляют способы избежать пользовательского ввода.

2. @IGP Я считаю, что переменные на самом деле превращаются в подготовленные операторы, что отличается от экранирования и даже более безопасно.

3. Они являются. Я просто не думал, что это что-то другое.

4. Спасибо, ребята, это действительно помогло мне.