2010-05-05 20 views
13

Abbiamo una situazione in cui registriamo visite e visitatori in caso di colpi di pagina e bot stanno intasando il nostro database. Non possiamo usare captcha o altre tecniche come questa, perché questo è prima ancora che chiediamo input umani, fondamentalmente stiamo registrando gli hit delle pagine e vorremmo solo registrare gli accessi alle pagine da parte degli umani.Come si rilevano i bot a livello di programmazione

Esiste un elenco di IP bot noto? Il controllo degli agenti utente di bot noti funziona?

risposta

19

Non esiste un modo sicuro per catturare tutti i robot. Un bot potrebbe agire come un vero browser se qualcuno lo volesse.

I robot più seri si identificano chiaramente nella stringa dell'agente, quindi con un elenco di bot noti è possibile inserirne la maggior parte. Alla lista è anche possibile aggiungere alcune stringhe dell'agente che alcune librerie HTTP usano di default, per catturare bot da persone che non sanno nemmeno come modificare la stringa dell'agent. Se registri solo le stringhe degli agenti dei visitatori, dovresti essere in grado di scegliere quelle da archiviare nell'elenco.

È anche possibile creare una "cattiva botrappa" inserendo un link nascosto nella pagina che conduce a una pagina filtrata nel file robots.txt. I bot seri non seguirebbero il collegamento e gli umani non possono fare clic su di esso, quindi solo il bot che non segue le regole richiede il file.

+1

Puoi anche creare un file robots.txt per bot ben educati http://www.robotstxt.org/orig.html –

0

Penso che molti robot sarebbero identificabili dall'utente-agente, ma sicuramente non tutti. Una lista di IP noti - non ci conterei nemmeno.

Un approccio euristico potrebbe funzionare. I bot sono di solito molto più veloci a seguire i link che le persone. Forse è possibile monitorare l'IP di ciascun cliente e rilevare la velocità media con cui segue i collegamenti. Se si tratta di un crawler, probabilmente segue immediatamente ogni link (o almeno molto più velocemente degli umani).

0

non credo ci sarà un elenco di indirizzi IP, indirizzi Botnet Botnet IP non è statico, e nessuno sa chi sono i bot compresi gli utenti che si comportano come Bot.

La tua domanda è indubbiamente un'area di ricerca molto interessante al momento, sono curioso di sapere se qualcuno potrebbe dare una soluzione per questo problema.

È possibile utilizzare qualsiasi tipo di tecnica e capire se si tratta di un essere umano o meno, quindi è possibile ottenere i registri.

0

Hai già aggiunto un robots.txt? Anche se questo non risolverà l'utilizzo di bot dannosi, potresti rimanere sorpreso dalla legittima attività di scansione già in atto sul tuo sito.

+0

Non sono sicuro che il file robots.txt li aiuti a registrare i visitatori reali separatamente. Non hanno detto che volevano escludere completamente i bot. –

Problemi correlati