Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 5.x » Создать собственную обработку ошибок или поменять код с 500 на 503 » 28.11.2019 14:45:14

evilgoogle
Ответов: 1

Хай народ. Смотрите, laravel возвращет вот такую страницу если допустить ошибку в коде.
https://ibb.co/LpXJxS7
Возвращает он его с кодом 500. Тут у меня стоит задача, чтоб страница "Whoops! There was an error" возвращялся с кодом 503!

Гуглил на этот счет и читал документацию, где показывают как создать свой собствнный обработчик исключений в app/Exceptions/Handler.php
https://badcode.ru/kak-sozdat-kastomnui … v-laravel/
http://laravel.su/docs/5.4/errors
Но тут в примерах показана как поймать http exception и сдлеать соответствующие 404, 500 и т.д. А мне нужно поймать "Whoops!"
Как это можно сделать?

Скажите можно ли настроить laravel чтоб при ошибках он возвращял с кодом 503?
Если нельзя так настроить, то как мне проверить на "Whoops!" чтоб создать свой обработчик?

#2 Re: Laravel 5.x » Защита от SQL-инъекций в сырых запросах » 04.01.2019 12:35:45

Спасибо 2 пример с трейтом понравился. Тут в laravel используется pdo как бы и у него нет типа такой функций mysqli_real_escape_string, правильно?

#3 Laravel 5.x » Защита от SQL-инъекций в сырых запросах » 04.01.2019 11:28:01

evilgoogle
Ответов: 4

Хай юзаю я 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 получить? smile

Подвал раздела