PHP-скрипт для защиты от парсинга и ботов

PHP-скрипт для защиты от парсинга и ботов

PHP-скрипт для защиты от парсинга и ботов. Скрипт позволяет произвести подсчет количества действий или запросов пользователя и заблокировать его на определенное время при достижении заданного количества.

Например, если пользователь больше 5 раз входил на страницу, то вы можете вывести ему сообщение, либо заблокировать доступ на страницу в течении 24 часов.

Проверка осуществляется по IP пользователя (дополнительно можно включить проверку по user-agent).

Требования

На вашем сервере должны быть установлено:

  • Redis >=3
  • PHP >=7.0

Количество действий пользователя хранится к Redis, поэтому убедитесь, что он установлен на вашем сервере или компьютере.

Использование

Проверка осуществляется по IP пользователя (дополнительно можно включить проверку по user-agent).

Параметры, которые можно передать в класс:

  • host, адрес подключения к Redis (по умолчанию, localhost).
  • maxCallsLimit, количество действий (по умолчанию, 5 попыток).
  • timePeriod, время блокировки в секундах (по умолчанию, 86400 - 24 часа).
  • userAgent, дополнительно проверять по параметру user-agent браузера пользователя.

Пример 1

Если пользователь посетил страницу больше 10 раз, то отдаем странице код 429 и блокируем дальнейшие действия пользователя на 24 часов.

$rateLimit = new RateLimitingService([
 'maxCallsLimit' => 10,
 'timePeriod' => 86400
]);

if (!$rateLimit->check()) {
 http_response_code(429);
 exit();
}

Пример 2

Блокируем действия пользователя и показываем сколько раз он совершил действие.

$rateLimit = new RateLimitingService([
 'maxCallsLimit' => 10,
 'timePeriod' => 86400
]);
if (!$rateLimit->check()) {
 echo "Вы уже отправили форму ${$rateLimit->total()} раз!";
}

 

Понравился скрипт? Поделись с друзьями!
  • Дата добавления 2023-06-10
  • Обновлён 2023-06-10
  • CMS Любая
  • Язык скрипта PHP
  • Версия скрипта 1.0

К оплате принимаются

  • WebMoney (WMZ)
  • USDT (TRC20)
  • Tron (TRX)