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

Блокировать ботов по их рефереру Java или строке пользовательского агента?

Я получаю много посещений в моих журналах, которые сканируют большинство страниц верхнего уровня моего сайта и показывают реферер как версию Java.

В реферере я вижу разные варианты версий Java, то есть Java / 1.6.0_04, Java / 1.4.1_04, Java / 1.7.0_25 и т. Д.

И иногда, но не всегда, я получаю 404 для / contact /, но ни одной из других страниц ниже.

Согласно Project Honeypot, IP-адреса обычно всегда являются сборщиками спама и ботами.

78.129.252.190 - - [24/Jan/2014:01:28:52 -0800] "GET / HTTP/1.1" 200 6728 "-" "Java/1.6.0_04" 198 7082
78.129.252.190 - - [24/Jan/2014:01:28:55 -0800] "GET /about HTTP/1.1" 301 - "-" "Java/1.6.0_04" 203 352
78.129.252.190 - - [24/Jan/2014:01:28:55 -0800] "GET /about/ HTTP/1.1" 200 29933 "-" "Java/1.6.0_04" 204 30330
78.129.252.190 - - [24/Jan/2014:01:28:56 -0800] "GET /articles-columns HTTP/1.1" 301 - "-" "Java/1.6.0_04" 214 363
78.129.252.190 - - [24/Jan/2014:01:28:57 -0800] "GET /articles-columns/ HTTP/1.1" 200 29973 "-" "Java/1.6.0_04" 215 30370
78.129.252.190 - - [24/Jan/2014:01:28:58 -0800] "GET /contact HTTP/1.1" 301 - "-" "Java/1.6.0_04" 205 354
78.129.252.190 - - [24/Jan/2014:01:28:58 -0800] "GET /contact/ HTTP/1.1" 200 47424 "-" "Java/1.6.0_04" 206 47827

Что они ищут? Уязвимость?

Могу ли я заблокировать эти посещения по их рефереру Java? Если да, то как? Или с функцией php?

Я знаю, как блокировать IP-адреса в .htaccess, но блокировка User-agent для меня более активный метод).

Обновление от 2 апреля 2014 г. Я не могу заблокировать пользовательский агент Java ни одним из этих двух правил.

RewriteCond %{HTTP_USER_AGENT} Java/1.6.0_04
RewriteRule ^.*$ - [F]

RewriteCond %{HTTP_USER_AGENT} ^Java
RewriteRule ^.*$ - [F]

Примечание: я использую общий хостинг и имею ограниченный доступ к конфигурациям apache.

Сопоставление строк пользовательского агента не является надежным методом, так как любой может изменить его в заголовках.

По моему опыту, каждый веб-сервер, подключенный к Интернету, сродни сканированию и просмотру (в этом суть, верно? :).

Во всяком случае, они просто сканируют ваш веб-сервер для какой-то индексации. Если вы хотите помешать или ограничить частоту этих запросов, я бы предложил apache mod_evasive, или mod_dosevasive, или mod_qos, чтобы ограничить количество одновременных подключений на IP-адрес в секунду и многое другое.

Имейте в виду, что это решение может привести к тому, что ваш веб-сервер заблокирует законные запросы от запросов с маршрутизацией NAT и так далее.

Затем вам нужно будет закодировать 403 запрещено самостоятельно, определяя набор правил от поведения сканирования в ваше приложение php, когда боты изучают настройку частоты уклонения ваших модов apache.

Для параметра AllowOverride установлено значение Все?

В качестве более правильного решения я бы рекомендовал использовать mod_evasive [1], чтобы заблокировать чрезмерное сканирование любым клиентом. Однако требуется iptables.

  1. http://www.zdziarski.com/blog/?page_id=442