Как предотвратить инъекцию SQL в Laravel?
в моем контроллере у меня есть этот код:
public function create($brand_id)
{
Brand::findOrFail($brand_id);
}
и так:
public function search()
{
$q = Input::get('q');
$brands = Brand::where('title', 'LIKE', '%'.$q.'%')->take(80)->get();
этот код безопасен? Под "безопасным" я подразумеваю SQL-инъекцию. Или я должен сделать какую-то переменную здесь? И каков наилучший способ очистки пользовательского ввода? Большое спасибо за помощь:)
2 ответов
yes Eloquent использует привязку параметров за сценой, которая безопасно избегает любого ввода, используемого в where().
документ говорит, что Eloquent обрабатывает это за сценой, но вы также можете использовать like DB::escape($q)
чтобы быть в безопасной стороне