Laravel по-русски

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

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

#1 15.02.2018 18:04:31

Как ограничить количество запросов в минуту/час/сутки?

Версия Laravel: 5.5
Версия PHP: 7.0
Операционная система и её версия: Ubuntu 16.04
Вендор и версия сервера БД: Mysql 5.7
Вендор и версия Веб-сервера: Apache 2.4
Медод подключения PHP: php-fpm

Здравствуйте.
Подскажите пожалуйста, как можно в Laravel 5.5 реализовать ограничения на количество запросов в минуту/час/сутки?
В случае превышения выдавать указанное сообщение.
Спасибо.

Не в сети

#2 15.02.2018 18:13:22

Re: Как ограничить количество запросов в минуту/час/сутки?

в целом или от одного пользователя?

Не в сети

#3 15.02.2018 19:21:46

Re: Как ограничить количество запросов в минуту/час/сутки?

от одного ip или пользователя

Не в сети

#4 15.02.2018 20:28:17

Re: Как ограничить количество запросов в минуту/час/сутки?

Тогда так
https://laravel.com/docs/5.5/middleware
\Illuminate\Routing\Middleware\ThrottleRequests::class,

Я не смотрел исходники, но скорее всего ограничение на сессию.
(от ддоса не спасет)

Изменено covobo (15.02.2018 20:29:19)

Не в сети

#5 15.02.2018 20:38:09

Re: Как ограничить количество запросов в минуту/час/сутки?

Спасибо, оно.

Теперь вы можете задать лимит запросов за одну минуту с одного IP адреса:
Route::get('/api/users', ['middleware' => 'throttle:60,1', function () {
    //
}]);

Изменено vebmaster (15.02.2018 20:44:05)

Не в сети

#6 15.02.2018 22:18:10

Re: Как ограничить количество запросов в минуту/час/сутки?

от одного ip или пользователя

Это "или", как бы, разделяет весь вопрос, вернее, возможные решения, на два совершенно разных.

Ограничение по IP - это сетевой уровень, здесь нет ни протокола (HTTP, FTP, что-то еще), ни "пользователей" (или любых других высокоуровневых понятий), вследствие чего такое ограничение решается общими инструментами, которые даже способны оградить от некоторого DDoS. Проще всего это решается через расширение --limit iptables. Это самый простой случай, не нужно вообще ничего программировать.

А ограничение по пользователю - это уровень Laravel, то, что посоветовал covobo.

Не в сети

#7 16.02.2018 10:18:45

Re: Как ограничить количество запросов в минуту/час/сутки?

Проще всего это решается через расширение --limit iptables

задача сделать лимит на определённый URL, а кроме них могут подгружаться css, js файлы. Вот они то и могут отнять эти запросы, что не желательно.

Не в сети

#8 16.02.2018 18:06:59

Re: Как ограничить количество запросов в минуту/час/сутки?


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#9 16.02.2018 19:37:09

Re: Как ограничить количество запросов в минуту/час/сутки?

тоже интересный вариант, спасибо

Не в сети

#10 17.02.2018 10:28:22

Re: Как ограничить количество запросов в минуту/час/сутки?

для спасибо есть кнопочка со стрелкой вверх wink


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

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