Как работает laravel throttle

Laravel Throttle позволяет устанавливать ограничения для запросов, защищая Ваш сайт от перебоев и атак. Узнайте, как это работает, и примеры использования посредством простых конфигураций.

Laravel Throttle - это пакет, который предоставляет простой и гибкий механизм для мониторинга и ограничения доступа к вашим приложениям. Это позволяет ограничить количество запросов, которые пользователи могут отправлять в приложение за определенный промежуток времени. Это может быть использовано для защиты от доступа неавторизованных пользователей, работы как системы анти-ддос или просто контроль загрузки на сервер.

Laravel Throttle предоставляет три способа подключения: через простой механизм для маршрутизации, через посредник или через простую функцию. При использовании механизма маршрутизации вы можете ограничить количество запросов для определенных маршрутов. Например, код ниже ограничивает количество запросов для маршрута “/profile” до 60 запросов в минуту.


Route::middleware('throttle:60,1')->group(function () {
    Route::get('/profile', function () {
        //
    });
});

При использовании посредника вы можете ограничить доступ к любому маршруту, который использует посредник. Например, вы можете ограничить доступ к маршруту “/profile” с помощью простого добавления посредника в маршрут:


Route::get('/profile', function () {
    //
})->middleware('throttle:60,1');

Последний способ - использование функции. Это позволяет вам ограничить доступ к любому маршруту или действию приложения. Например, вы можете ограничить доступ к маршруту “/profile” с помощью функции:


Route::get('/profile', function () {
    if (Throttle::attempt(60, 1)) {
        //
    }
});

Если пользователь превысит лимит запросов, Laravel Throttle вернет ошибку 429 Too Many Requests. Вы также можете настроить свой собственный обработчик ошибки, используя метод throttle. Например, вы можете создать страницу для показа пользователям, которые превысили лимит запросов.


Throttle::throttle('throttle:60,1', function () {
    return response()->view('errors.429');
});

Laravel Throttle также предоставляет средства для мониторинга использования, используя данные из базы данных хранилища. Вы можете использовать метод threshold для проверки на превышение порогового значения. Например, если вы хотите проверить, превышен ли порог для клиента, используйте следующий код:


if (Throttle::threshold(60, 1)) {
    // Клиент превысил пороговое значение
}

Вы также можете использовать метод reset для сброса счетчика запросов для клиента. Например, если вы хотите сбросить счетчик для клиента, используйте следующий код:


Throttle::reset(60, 1);

В целом, Laravel Throttle - это прекрасный инструмент для ограничения доступа к приложению. Он позволяет вам быстро и просто ограничить доступ к приложению и отслеживать использование ваших пользователей. Это отличный инструмент для защиты вашего приложения и предотвращения несанкционированного доступа.

Ответы (0)