2011-11-13 13 views
9

I currentyly utilizar este código para bloquear wget y libwww¿Hay alguna forma de bloquear CURL para recuperar datos en mi sitio?

Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/ 
SetEnvIfNoCase User-Agent "^Wget" bad_user 
SetEnvIfNoCase User-Agent "^libwww-perl" bad_user 
Deny from env=bad_user 

es que hay uno para rizo?

+0

Eso solo los bloquea hasta que el usuario suspira y anula la cadena de agente de usuario. Ni Wget ni LWP (y sí, es LWP no libwww) son "malos", ambas herramientas se comportan bien y respetan robots.txt cuando están en modo de duplicación. – Quentin

+0

@Quentin ¿cómo puedo bloquearlos? – eric

Respuesta

19

Sí, estoy seguro de curl tiene un defecto User-Agent, pero esto es obviamente algo que se puede cambiar tan fácilmente como -H 'User-Agent=Poop'

De hecho, creo que hay un interruptor específicamente para fijar el agente de usuario. -A

3

curl user agents se pueden cambiar en cualquier momento. La razón por la que Curl existe es que puedes cambiar casi todo en tu consulta.

Puede bloquearlos, pero una vez que cambien el agente de uso, tendrán acceso de nuevo.

Le recomiendo que bloquee la dirección IP en su lugar o toda la subred para estar seguro.

Ejemplo:

deny from aa.bb.cc.dd ff.gg.hh.0/24 
1

Puede comprobar idioma preferido, la versión HTTP, dominio remoto y tales cosas.

0

Incluso si se detiene por un tiempo, un atacante vendrá aquí en este bendito sitio y obtendrá una docena de respuestas sobre cómo romper su defensa.

Entonces, lo odio pero no hay forma de bloquearlo.
Puede prohibir algunas direcciones IP con el tiempo, puede colocar un poste de miel para detectar bots pero todo es frágil.
Por lo tanto, es mejor que no se preocupe por los datos, sino por el cuidado del servicio.
Siempre que su servicio sea el mejor, su sitio será el primero. Y ningún raspado les ayudará a los que no tienen nada que quieren alimentarse del trabajo de otras personas.

+0

gracias a eso, téngalo en cuenta – Derek

0

¿Agregar un captcha si hay dos solicitudes múltiples desde una única dirección IP?

+0

Vaya, tome ejemplo de Google. Y comente cuando vote abajo para describir el motivo. – mobius

+0

+1 me gusta la idea del captcha, pero mi pregunta es sobre curl, ¿cómo se puede poner un captcha en una solicitud CURL? – eric

+0

@eric, supongo que esta es probablemente una mejor solución, ya que evitará que cualquier cliente (incluido Curl) abuse de su sitio web (o elimine contenido de su sitio web). No se puede simplemente basar en User-Agent desafortunadamente ya que es bastante fácil cambiar el User-Agent. Google usa la misma técnica con CAPTCHA si intenta obtener demasiados resultados de búsqueda. Entonces, incluso con curl, cuando el captcha se activa para esta IP, Curl solo descargará el html que contiene la imagen de captcha – mobius

Cuestiones relacionadas