Я получаю много посещений в моих журналах, которые сканируют большинство страниц верхнего уровня моего сайта и показывают реферер как версию 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.