¿Qué tipo de demora impedirá que un robot rastree mi sitio?

6

Utilizo lo que creo que es el método estándar para identificar los bots defectuosos que no respetan mi robots.txt (es decir, deshabilitar el rastreo del subdirectorio bad-bots y luego registrar a los que aún van allí).

Hasta ahora, acabo de bloquear los robots maliciosos en función de su dirección IP después de que hayan sido identificados. Sin embargo, estoy pensando en introducir un enfoque más sutil para al menos algunos (por ejemplo, delincuentes espurios que pueden ser falsos positivos). La idea es que la solicitud se atenderá, pero después de un retraso (por ejemplo, implementada utilizando PHP sleep() ). De esa manera, un ser humano (paciente) al que solo se le asigna una dirección IP utilizada previamente por un robot malo verá la página, mientras que un robot malo solo puede abandonar la solicitud y pasar a la siguiente víctima.

La pregunta es: ¿Qué cantidad de segundos debo usar en este tipo de esquema? Idealmente, debería ser lo suficientemente corto como para no ser demasiado molesto para los humanos, mientras que lo suficientemente largo como para disuadir a un robot malo de rastrear mi sitio.

Alternativamente: ¿Hay algún tipo de método que pueda usar para medir el tiempo que un bot que intenta acceder a mi sitio espera la respuesta antes de "rendirme" y seguir adelante?

Editar : los comentarios de Dinu Smădu y Rory Alsop me han convencido de que introducir un retraso no es una buena idea. Y Polynominal ha sugerido que Security.SE puede no ser el lugar más adecuado. Así que tomé lo que aprendí aquí (¡gracias de nuevo, amigos!) Y publiqué una pregunta revisada en Webmasters.SE .

    
pregunta Free Radical 06.01.2013 - 11:14
fuente

3 respuestas

12

No creo que este tipo de enfoque sea una buena idea. Al usar la función sleep () en ciertas solicitudes, le está facilitando a un atacante crear una Denegación de Servicio. Simplemente creará una gran cantidad de solicitudes para el recurso que está sirviendo con un retraso. De esta manera, se alcanzará la cantidad de solicitudes que el servidor puede procesar a la vez y los usuarios legítimos no podrán acceder al sitio.

Además, no tiene que "castigar" al usuario ofreciéndole un largo tiempo de espera. Buscaría alternativas si una página web es lenta todo el tiempo.

La mejor protección es no tener información confidencial que sea de acceso público. Use un mecanismo de autenticación para proteger esos recursos y permita el acceso solo a los usuarios que desee.

Si está intentando evitar que los bots copien información de su sitio, tal vez CAPTCHA podría ayudar. Use un CAPTCHA antes de mostrar cierta información.

    
respondido por el Dinu S 06.01.2013 - 12:24
fuente
3

Es poco probable que un retraso sea de uso real para disuadir a un sistema automatizado. Los sistemas automatizados esperarán indefinidamente, probablemente más de lo que una persona estaría dispuesta a hacer, por lo que es más probable que disuadan a los clientes reales que a los robots, por lo que sería malo para el negocio.

    
respondido por el GdD 06.01.2013 - 15:35
fuente
2

Un mejor enfoque podría ser tener una redirección en la IP del bot defectuoso. Esta redirección podría explicar la situación y proporcionar un CAPTCHA para eliminar la IP del archivo bot incorrecto.

    
respondido por el AJ Henderson 07.01.2013 - 15:14
fuente

Lea otras preguntas en las etiquetas