Como faço para parar bots de incrementar meu download contador de arquivo em PHP?

StackOverflow https://stackoverflow.com/questions/235558

  •  04-07-2019
  •  | 
  •  

Pergunta

Quando um usuário clica em um link para baixar um arquivo no meu site, eles vão para esse arquivo PHP , que incrementa um contador de download para o arquivo e, em seguida, header () - redireciona para o arquivo real. Eu suspeito que os bots estão seguindo o link de download, no entanto, assim que o número de downloads é impreciso.

  • Como faço para deixar bots sabem que não devem seguir o link?
  • Existe uma maneira de detectar a maioria dos bots?
  • Existe uma maneira melhor para contar o número de downloads de um arquivo fica?
Foi útil?

Solução

robots.txt: http://www.robotstxt.org/robotstxt.html

Nem todos os bots respeitá-la, mas a maioria. Se você realmente quer evitar o acesso através de bots, fazer o link para ele um POST em vez de um GET. Bots não seguirá urls POST. (Ou seja, usar um pequeno formulário que envia de volta para o site que leva você para o URL em questão.)

Outras dicas

Gostaria de pensar resposta robots.txt do Godeke seria suficiente. Se você absolutamente não pode ter os bots se seu contador, então eu recomendo usar o arquivo de robôs em conjunto com não não aumenta os cliques com algum agentes de usuário comum robô .

Nem caminho é perfeito., Mas a mistura dos dois é provavelmente um pouco mais rigoroso. Se é era mim, eu provavelmente apenas manter o arquivo de robôs, porém, uma vez que é fácil e provavelmente a solução mais eficaz.

Godeke é certo, robots.txt é a primeira coisa a fazer para manter os bots de download.

Em relação à contagem, este é realmente um problema de análise da web. você não está mantendo seus logs de acesso WWW e executá-los através de um programa de análise como Webalizer ou AWStats (ou alternativas extravagantes como Webtrends ou Urchin)? Para mim, esse é o caminho a percorrer para recolher este tipo de informação, porque é fácil e não há PHP, redirecionamento ou outro desempenho atingido quando o usuário de download do arquivo. Você está apenas usando os logs do Apache que você está mantendo qualquer maneira. (E grep -c lhe dará o 'n' contagem rápida suja em um arquivo particular ou padrão de curinga.)

Você pode configurar o software estatísticas de ignorar acessos por bots ou agentes de usuários específicos e outros critérios (e se você mudar seus critérios, mais tarde, você só reprocessar os dados do log de idade). Claro, isso exige que você tenha todos os seus antigos registros, por isso, se você foi jogá-los com algo como logrotate você vai ter que começar a sair sem qualquer dados históricos.

Você também pode detectar bots maliciosos, que não respeitaria robots.txt usando http: // www.bad-behavior.ioerror.us/ .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top