Как остановить всплеск паразитного трафика через redirect.php в Битрикс: решение с проверкой реферера
19.03.2024
≈ 2 минуты.
24 показа
В последнее время на множестве сайтов работающих на Битрикс "Управление сайтом" наблюдаются огромные скачки посещений
Результат
И все это из-за паразитного трафика. Таким способом обычно маскируют источник перехода на конечный адрес. Чтобы в реферере был домен обычного сайта, с чистой репутацией.
Увидеть можно это в журнале
Запросов очень много и они создают дополнительную нагрузку на сайт.
Чтобы это остановить, можно внести дополнительную логику в файл /bitrix/redirect.php
В зависимости от того, используете ли вы этот функционал, можно сделать следующее- Отсекать все запросы если нет дополнительного параметра в такой ссылке (произвольный параметр который будет формироваться на вашем сайте и передаваться в ссылке)
-
Проверять реферер и отсекать все запросы, в которых значение не соответствует вашему домену
-
Если не пользуетесь этим функционалом, можно в дополнение ко 2 пункту, просто отсекать все такие запросы, возвращая 404 ошибку, как сделано ниже.
// файл /bitrix/redirect.php
// отсекаем без реферера ----
if (empty($_SERVER['HTTP_REFERER'])) {
header('Not found', true, 404);
exit(0);
}
// отсекаем только с реферером в котором иной домен ----
$refererHost = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$host = parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST);
$refererHost = preg_replace('/(:\d+)$/', '', $refererHost);
$host = preg_replace('/(:\d+)$/', '', $host);
if ($refererHost !== $host) {
header('Not found', true, 404);
exit(0);
}
// совсем отсекаем все запросы ---
header('Not found', true, 404);
exit(0);
// далее стандартный код файла
define("ADMIN_SECTION", false);
//....


