[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Защита от SQL-инъекций в сырых запросах
Evil_Google
Хай юзаю я whereRaw вот в таком запросе -


DB::table('news')
->select('title', 'url', 'desc', 'text', 'created_at', 'image')
->where('delete', 0)
->where('enable', 2)
/* || ---> отсеивание новостей у которых срок публикаций еще не подошел | */
->where(function ($query) {
$query->whereNull('created_at')
->orWhere('created_at', '<=', Carbon::now()->toDateTimeString());
})
/* || ---> |*/
->whereRaw('MATCH (`title`, `desc`, `text`) AGAINST (\''.$q.'\')')
->orderBy('created_at', 'desc')
->offset($offest)
->limit($paginate)
->get();


С переменной $q приходит поисковая слова - типа "машина", "видео" и т.п. Тут запросто можно отправить sql инъекцию.

https://laravel.ru/posts/250
Читал я эту документацию где написано - "Будьте внимательны и не допускайте возможностей для SQL-инъекций! при сырых запросах". Аха, понял. Теперь вопрос - а как я буду собственно защищаться? Такое уже не описано.
Тут я свою переменную $q хочу положить в mysqli_real_escape_string($database, $q)
НО тут есть одно проблема - я в mysqli_real_escape_string должен передать идентификатор соединение с базой mysql. Как это в laravel получить? :)

_____________
Жадный.... жадный.... жадный кот
SerginhoLD
blink.gif mysqli.. там вроде как pdo под капотом

Вот не верю что не гуглится laravel orm escape

_____________
"internet explorer всех правильней отображает страницы" ©
Evil_Google
У меня в кофигах подключен mysql. Ну не знаю кажется работает pdo все же unsure.gif

_____________
Жадный.... жадный.... жадный кот
killer8080
Цитата (Evil_Google @ 4.01.2019 - 11:33)
Читал я эту документацию где написано - "Будьте внимательны и не допускайте возможностей для SQL-инъекций! при сырых запросах". Аха, понял. Теперь вопрос - а как я буду собственно защищаться? Такое уже не описано.

используй prepared statement
...
->
whereRaw('MATCH (`title`, `desc`, `text`) AGAINST (?)', [$q])
...
nazar2292
Получилось решить? Такая же ситуация sad.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.