Bloqueia bots pelo referenciador Java ou pela string User-Agent?

2

Tenho recebido muitos hits da web em meus registros que rastreiam a maioria das páginas de nível superior do meu site e mostram um referenciador como uma versão do Java.

Eu vejo diferentes variantes das versões do Java no referenciador, ou seja, Java / 1.6.0_04, Java / 1.4.1_04, Java / 1.7.0_25, etc.

E às vezes, mas nem sempre, recebo um 404 para / contact / mas nenhuma das outras páginas abaixo.

Os IPs geralmente são sempre coletores de spam e bots, de acordo com o Projeto Honeypot

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

O que eles estão procurando? Uma vulnerabilidade?

Posso bloquear essas visitas pelo referenciador Java? Se sim, como? Ou com uma função php?

Eu sei como bloquear IPs em .htaccess, mas o bloqueio por User-agent é um método mais pró-ativo para mim).

Atualização 2/04/14 Não consigo bloquear um agente de usuário Java com uma dessas duas regras.

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

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

Observação: estou em hospedagem compartilhada e tenho acesso limitado às configurações do apache.

    
por markratledge 27.01.2014 / 16:19

2 respostas

3

A correspondência de sequências do agente do usuário não é um método confiável, já que qualquer um pode alterá-lo nos cabeçalhos.

Da minha experiência, todos os servidores de Internet enfrentados pela Internet são semelhantes a serem rastreados e navegados (esse é o ponto certo? :)).

Se qualquer coisa, eles estão apenas rastreando o seu servidor web para indexação de algum tipo. Se você quiser frustrar ou limitar a frequência dessas solicitações, sugiro que apache mod_evasive, ou mod_dosevasive ou mod_qos, limite o número de conexões simultâneas por IP por segundo e mais.

Lembre-se de que essa solução pode levar seu servidor da web a bloquear solicitações legítimas de solicitações roteadas de NAT, e assim por diante.

Em seguida, você precisará codificar o 403 para se proibir definindo um conjunto de regras de comportamento de rastreamento em seu aplicativo php quando os bots aprenderem sua configuração de frequência evasiva de mods do apache.

    
por 27.01.2014 / 18:41
0

AllowOverride está definido como All?

Como uma solução mais adequada, recomendo usar o mod_evasive [1] para bloquear a verificação excessiva por qualquer cliente. Requer iptables embora.

  1. link
por 07.02.2014 / 15:27