Download the PHP package unetway/rate-limiting without Composer
On this page you can find all versions of the php package unetway/rate-limiting. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download unetway/rate-limiting
More information about unetway/rate-limiting
Files in unetway/rate-limiting
Package rate-limiting
Short Description Скрипт подсчитывает действия пользователя и блокирует его при превышении лимита.
License MIT
Homepage https://github.com/unetway/rate-limiting
Informations about the package rate-limiting
RateLimiting
PHP-скрипт для защиты от парсинга и ботов. Скрипт позволяет произвести подсчет количества действий или запросов пользователя и заблокировать его на определенное время при достижении заданного количества.
Например, если пользователь больше 5 раз входил на страницу, то вы можете вывести ему сообщение, либо заблокировать доступ на страницу в течении 24 часов.
Проверка осуществляется по IP пользователя (дополнительно можно включить проверку по user-agent).
Требования
На вашем сервере должны быть установлено:
- Redis >=3
- PHP >=7.0
Установка
Для установке просто скопируйте файл RateLimitingService.php в нужный вам каталог, при необхоимости добавьте namespace или переименуйте класс.
Количество действий пользователя хранится к Redis, поэтому убедитесь, что он установлен на вашем сервере или компьютере.
Использование
Проверка осуществляется по IP пользователя (дополнительно можно включить проверку по user-agent).
Параметры, которые можно передать в класс:
- host, адрес подключения к Redis (по умолчанию, localhost).
- maxCallsLimit, количество действий (по умолчанию, 5 попыток).
- timePeriod, время блокировки в секундах (по умолчанию, 86400 - 24 часа).
- userAgent, дополнительно проверять по параметру user-agent браузера пользователя.
Пример 1
Если пользователь посетил страницу больше 10 раз, то отдаем странице код 429 и блокируем дальнейшие действия пользователя на 24 часов.
Пример 2
Блокируем действия пользователя и показываем сколько раз он совершил действие.