Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Версия Laravel: 5.5
Версия PHP: 7.0
Операционная система и её версия: Ubuntu 16.04
Вендор и версия сервера БД: Mysql 5.7
Вендор и версия Веб-сервера: Apache 2.4
Медод подключения PHP: php-fpm
Здравствуйте.
Подскажите пожалуйста, как можно в Laravel 5.5 реализовать ограничения на количество запросов в минуту/час/сутки?
В случае превышения выдавать указанное сообщение.
Спасибо.
Не в сети
в целом или от одного пользователя?
Не в сети
от одного ip или пользователя
Не в сети
Тогда так
https://laravel.com/docs/5.5/middleware
\Illuminate\Routing\Middleware\ThrottleRequests::class,
Я не смотрел исходники, но скорее всего ограничение на сессию.
(от ддоса не спасет)
Изменено covobo (15.02.2018 20:29:19)
Не в сети
Спасибо, оно.
Теперь вы можете задать лимит запросов за одну минуту с одного IP адреса:
Route::get('/api/users', ['middleware' => 'throttle:60,1', function () {
//
}]);
Изменено vebmaster (15.02.2018 20:44:05)
Не в сети
от одного ip или пользователя
Это "или", как бы, разделяет весь вопрос, вернее, возможные решения, на два совершенно разных.
Ограничение по IP - это сетевой уровень, здесь нет ни протокола (HTTP, FTP, что-то еще), ни "пользователей" (или любых других высокоуровневых понятий), вследствие чего такое ограничение решается общими инструментами, которые даже способны оградить от некоторого DDoS. Проще всего это решается через расширение --limit iptables. Это самый простой случай, не нужно вообще ничего программировать.
А ограничение по пользователю - это уровень Laravel, то, что посоветовал covobo.
Не в сети
Проще всего это решается через расширение --limit iptables
задача сделать лимит на определённый URL, а кроме них могут подгружаться css, js файлы. Вот они то и могут отнять эти запросы, что не желательно.
Не в сети
Apache mod_evasive
https://www.maketecheasier.com/mod-evas … tect-ddos/
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
тоже интересный вариант, спасибо
Не в сети
для спасибо есть кнопочка со стрелкой вверх
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети