2011-11-13 9 views
9

Io currentyly utilizzare questo codice per bloccare wget e libwwwC'è un modo per bloccare CURL per recuperare i dati sul mio sito?

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

c'è uno per riccio?

+0

Questo li blocca solo fino a quando l'utente non sospira e sovrascrive la stringa di user-agent. Né Wget not LWP (e sì, è LWP not libwww) sono "cattivi", entrambi gli strumenti sono ben educati rispetto a robots.txt in modalità mirroring. – Quentin

+0

@Quentin come posso bloccarli allora? – eric

risposta

19

Sì, sono sicuro curl ha un default User-Agent, ma che è ovviamente qualcosa che può essere modificato facilmente come -H 'User-Agent=Poop'

In realtà, penso che ci sia un interruttore specifico per l'impostazione della user agent. -A

3

I programmi utente di arricciatura possono essere modificati in qualsiasi momento. La ragione è che è possibile modificare quasi tutto nella query.

È possibile bloccarli, ma una volta modificati l'agente di utilizzo, avranno di nuovo accesso.

Si consiglia di bloccare l'indirizzo IP o l'intera sottorete solo per essere sicuri.

Esempio:

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

È possibile controllare la lingua preferita, la versione http, dominio remoto e cose del genere.

0

Anche se lo fermi per un po ', un attaccante verrà qui su questo sito benedetto e riceverà una dozzina di risposte su come rompere la tua difesa.

Quindi, lo odio ma non c'è modo di bloccare.
È possibile vietare alcuni IP alla fine, è possibile posizionare qualche honeypost per individuare i bot, ma tutto è fragile.
Quindi, è meglio non preoccuparsi dei dati ma della cura del servizio.
Fintanto che il servizio è il migliore, il tuo sito sarà il primo. E nessun raschiamento aiuterà i buoni a nulla che vogliono nutrirsi del lavoro altrui.

+0

grazie tenere a mente – Derek

0

Aggiungere un captcha se ci sono due richieste da un singolo indirizzo IP?

+0

Oh andiamo, prendi un esempio da Google. E commenta quando voti per descriverne il motivo. – mobius

+0

+1 mi piace l'idea del captcha - ma la mia domanda riguarda il ricciolo come si può mettere un captcha su una richiesta CURL? – eric

+0

@eric, immagino che questa sia probabilmente una soluzione migliore, poiché impedirà a qualsiasi client (incluso il ricciolo) di abusare del tuo sito web (o di raschiare il contenuto dal tuo sito web). Sfortunatamente non si può basare su User-Agent dato che è piuttosto semplice cambiare l'User-Agent. Google usa la stessa tecnica con il CAPTCHA se cerchi di ottenere troppi risultati di ricerca. Quindi, anche con curl, quando il captcha è attivato per questo IP, arricciamo solo il file html che contiene l'immagine captcha – mobius

Problemi correlati