Que opções existem para detectar rastreadores da web que não desejam ser detectados?
(Eu sei que as técnicas de detecção de listagem permitirão ao programador inteligente de rastreamento furtivo fazer uma aranha melhor, mas não acho que algum dia seremos capazes de bloquear rastreadores furtivos inteligentes, apenas aqueles que cometem erros.)
Não estou falando sobre os bons rastreadores como o googlebot e o Yahoo! Slurp. Eu considero um bot legal se ele:
- identifica-se como um bot na string do agente do usuário
- lê o robots.txt (e o obedece)
Estou falando sobre o rastreadores ruins , escondidos atrás de agentes de usuários comuns, usando minha largura de banda e nunca me dando nada em troca.
Existem alguns alçapões que podem ser construídos em uma lista atualizada (obrigado Chris, gs) :
- Adicionar um diretório listado apenas (marcado como não permitir) no robots.txt,
- Adicionando links invisíveis (possivelmente marcados como rel = "nofollow"?),
- estilo = "exibir: nenhum;" no link ou container pai
- colocado abaixo de outro elemento com maior índice z
- detectar quem não entende a capitalização,
- detectar quem tenta postar respostas, mas sempre falha no Captcha.
- detectar solicitações GET para recursos somente POST
- detectar intervalo entre pedidos
- detectar a ordem das páginas solicitadas
- detectar quem (de forma consistente) solicita recursos https em http
- detectar quem não solicita o arquivo de imagem (isso em combinação com uma lista de agentes de usuário de navegadores com capacidade de imagem conhecidos funciona surpreendentemente bem)
Algumas armadilhas seriam acionadas por bots 'bons' e 'ruins'. você pode combiná-los com uma lista de permissões:
- Isso desencadeia uma armadilha
- É pedido
robots.txt
? - Ele não acionou outra armadilha porque obedeceu
robots.txt
Outra coisa importante aqui é:
considere pessoas cegas usando leitores de tela: dê às pessoas uma maneira de entrar em contato com você ou resolva um Captcha (sem imagem) para continuar navegando.
Quais métodos existem para detectar automaticamente os rastreadores da web que tentam se mascarar como visitantes humanos normais.
Atualizar
A questão não é: Como faço para capturar todos os rastreadores. A questão é: como posso maximizar a chance de detectar um rastreador.
Alguns spiders são realmente bons e realmente analisam e entendem html, xhtml, css javascript, script VB etc ...
Não tenho ilusões: não vou conseguir vencê-los.
No entanto, você ficaria surpreso com o quão estúpidos alguns rastreadores são. Com o melhor exemplo de estupidez (na minha opinião) sendo: lançar todos os URLs para minúsculas antes de solicitá-los.
E então há um monte de rastreadores que 'não são bons o suficiente' para evitar os vários alçapões.