Назад | Перейти на главную страницу

Как заблокировать доступ к несуществующим фальшивым ссылкам?

В своей учетной записи Google Analytics я заметил, что на мой веб-сайт внезапно обрушился большой объем спам-трафика, который уничтожил статистику посетителей. Веб-сервер работает на Ubuntu 18.04 и Apache.

Это даже не реферальный спам, по которому вы можете отследить источник, а, похоже, автоматический спам от ботов по ссылкам, которых нет на моем сайте, вероятно, в попытке найти зараженные файлы. Спам-боты не используют полный URL-адрес и посещают только определенные подкаталоги, например:

/INVOICE-CT/11.php
/INVOICE-CT/1.php
/INVOICE-CT/counter/counter.php
/INVOICE-CT/process.php
/CT/b432.html
/CT/b136.html
/CT/c1428.html
/CT/b246.html
/CT/b510.html
/ct/0295.html
/CT/b118.html
/ct/b385.html
/CT/b738.html
/ct/c1559.html

Как лучше всего заблокировать такой трафик в .htaccess?

В идеале это не должно мешать "человеческим" ошибкам 404.

Поскольку Google Analytics не раскрывает IP-адреса посетителей, как вы можете определить IP-адреса ботов в Ubuntu, чтобы впоследствии заблокировать их?

Был бы признателен за ваш совет.

Вы можете сделать что-то вроде следующего в .htaccess чтобы заблокировать все URL-адреса, которые либо начинаются /INVOICE-CT/ или /CT/. Это использует mod_rewrite для возврата сгенерированного системой (или настраиваемого документа об ошибке Apache 404, если вы определили ErrorDocument):

RewriteEngine On
RewriteRule ^(invoice-)?ct/ - [R=404]

Если ваш документ об ошибке не содержит кода GA, тогда GA не будет регистрировать запрос.

В идеале это не должно мешать "человеческим" ошибкам 404.

Я предполагаю, что другие 404-е генерируются вашим веб-приложением, а не Apache? В противном случае нам придется переосмыслить вышеупомянутый подход и вместо этого переписать его на альтернативный URL.

Поскольку Google Analytics не раскрывает IP-адреса посетителей, как вы можете определить IP-адреса ботов в Ubuntu, чтобы впоследствии заблокировать их?

Очевидно, что этот метод не определяет IP-адреса ботов. Любой запрос на эти полностью недействительные URL-адреса будут заблокированы таким же образом. Выявление этих вредоносных ботов - нетривиальная задача, и, вероятно, лучше всего ее выполнить с помощью серверного модуля, такого как mod_security или fail2ban.

Как лучше всего заблокировать такой трафик в .htaccess?

"Лучший способ" - не использовать .htaccess (или конфигурацию Apache), но в самом вашем веб-приложении (чтобы расставить приоритеты для «хорошего» трафика). Только после того, как ваше приложение определит, что это 404, проверьте запрошенный URL. Если это один из этих полностью недействительных URL-адресов, тогда обслуживайте простой (не-GA) документ 404, в противном случае - стандартный документ с ошибкой 404 (который содержит код GA).

... большой объем спам-трафика, разрушающий статистику посетителей.

Хотя, по-видимому, этот «спам-трафик» уже генерирует 404-е и не попадает в ваши настоящие URL-адреса?