studio - chatbot whatsapp php
¿Cómo impido que los bots incrementen mi contador de descargas de archivos en PHP? (4)
Creo que la respuesta de robots.txt de Godeke sería suficiente. Si absolutamente no puede tener los bots en su contador, entonces recomendaría usar el archivo de robots junto con no aumentar los clics con algunos agentes de usuario de robot comunes .
De ninguna manera es perfecto., Pero la mezcla de los dos es probablemente un poco más estricta. Si fuera yo, probablemente me limitaría al archivo de robots, ya que es una solución fácil y probablemente la más efectiva.
Cuando un usuario hace clic en un enlace para descargar un archivo en mi sitio web, va a este archivo PHP que incrementa un contador de descarga para ese archivo y luego header (): los redirecciona al archivo real. Sospecho que los bots están siguiendo el enlace de descarga, sin embargo, por lo que el número de descargas es inexacto.
- ¿Cómo dejo que los bots sepan que no deberían seguir el enlace?
- ¿Hay alguna forma de detectar la mayoría de los bots?
- ¿Hay una forma mejor de contar la cantidad de descargas que recibe un archivo?
Godeke tiene razón, robots.txt es lo primero que se debe hacer para evitar que los bots se descarguen.
En cuanto al recuento, este es realmente un problema de análisis web. ¿No está guardando sus registros de acceso de www y ejecutándolos a través de un programa de análisis como Webalizer o AWStats (o alternativas sofisticadas como Webtrends o Urchin)? Para mí, ese es el camino a seguir para recopilar este tipo de información, porque es fácil y no hay PHP, redireccionamiento u otro rendimiento alcanzado cuando el usuario está descargando el archivo. Solo estás usando los registros de Apache que guardas de todos modos. (Y grep -c
le dará el recuento rápido y n sucio de un archivo o patrón de comodín en particular).
Puede configurar su software de estadísticas para que ignore los hits de los bots o los agentes de usuario específicos y otros criterios (y si cambia sus criterios más adelante, simplemente reprocesa los datos de registro anteriores). Por supuesto, esto requiere que tengas todos tus registros antiguos, por lo que si los lanzaste con algo como logrotate
deberás comenzar sin ningún dato histórico.
robots.txt: http://www.robotstxt.org/robotstxt.html
No todos los bots lo respetan, pero la mayoría lo hace. Si realmente desea evitar el acceso a través de bots, haga que el enlace sea un POST en lugar de un GET. Bots no seguirán las URL POST. (Por ejemplo, use un pequeño formulario que publique en el sitio que lo lleve a la URL en cuestión).
También puede detectar bots maliciosos, que no respetarían robots.txt utilizando http://www.bad-behavior.ioerror.us/ .