2009-10-01 4 views
10

Sto registrando ogni visita al mio sito Web e determinare se il visitatore è umano è importante. Ho cercato sul Web e trovato molte idee interessanti su come rilevare se il visitatore è umano.Come rilevare se un visitatore è umano e non un ragno

  1. se il visitatore è collegato e passò captcha
  2. rilevano gli eventi del mouse
  3. Rilevamento se l'utente dispone di un browser [user agent]
  4. rilevazione clic del mouse [come potrei fare per questo?]

Esistono altri modi infallibili per rilevare se il visitatore è umano?

+34

Chiedilo quante gambe ha. –

+0

Bello, Nick. Adoro l'umorismo ... +1 – pixelbobby

+0

- Merci, amigos! –

risposta

10

È necessario distinguere tra robot rispettosi della legge ben tollerati dalla legge, e dati maliziosi che rubano robot piratati.

I simpatici robot leggeranno il meta tag "Robot" e si attengono alla politica dell'utente. 'nessun indice' è un modo educato per rifiutare nessuno dei loro servizi.

I robot dannosi, d'altro canto, simuleranno qualsiasi "UserAgent" e intestazioni simili.

I captcha sono probabilmente il metodo migliore ma possono essere disattivati ​​se non vengono utilizzati.

Un metodo subdolo che ho visto è quello di avere un collegamento ricorsivo come primo collegamento nella pagina che invierà il crawler in un ciclo. Un altro è avere un link a un sito che non ti piace come il primo link sulla pagina per distrarre l'attenzione dei robot. Entrambi questi collegamenti possono essere resi facilmente "invisibili" agli agenti a base di carne.

+5

+1 per agenti a base di carne. –

0

Fai una domanda come "Qual è 3 + 5?"

+0

Meglio chiedere: chi sei? chi ti ha creato? ... lol – eglasius

+0

Non sono d'accordo con questo dato che ovviamente comprometterebbe l'esperienza dell'utente. è abbastanza doloroso solo compilare un captcha. tuttavia, se questo non ti interessa, questa sarebbe sicuramente una soluzione. – pixelbobby

+0

Ha chiesto se ci fossero altri modi non ha? lol –

8

Il modo più affidabile per rilevare gli spider è l'indirizzo IP. Gli spider comuni usano diversi indirizzi IP comunemente noti. http://www.iplists.com/nw/

+0

Peccato che questo elenco non sia stato aggiornato, per non parlare di BING! Comunque, credo che sia un buon punto di partenza. – MyDaftQuestions

0

Ricorda che qualsiasi cosa tu stia rendendo più difficile per un processo automatico, non significa che la stai impedendo completamente.

Per quanto riguarda gli eventi del mouse, si tratta di cose che accadono sul lato client, quindi aggiungerei solo le informazioni alla richiesta.

2

È necessario verificare la proprietà dell'utente-agente. Probabilmente puoi farlo in C#.

Ad esempio HttpContext.Current.Request... e quindi chiedere l'user-agent. Questo potrebbe darti qualcosa come crawler.google o quello che hai quindi potresti dover costruire il tuo elenco da controllare e restituire il risultato.

+1

I robot malintenzionati o malfunzionanti violeranno Internet Explorer o Firefox rendendo questo metodo irrinunciabile. –

+5

bene carbone nella calza per loro! – pixelbobby

+1

@Tim, quindi, dopo questa domanda: http://stackoverflow.com/questions/233192/detecting-stealth-web-crawlers –

0

Con i moduli è possibile utilizzare javascript per modificare l'azione del modulo per puntare a un URL reale. Questo filtrerà qualsiasi bot che non esegue il rendering delle pagine con javascript. Puoi avere più pulsanti di invio in cui solo uno funziona davvero e poi nascondi tutto il resto con i CSS. I robot non sapranno quale cliccare prima. Se ricevi mai un clic da uno dei pulsanti fasulli, sai di avere un bot.

0

O utilizzare Captcha o utilizzare Javascript per convalidare. Un'enorme percentuale di bot non valuta Javascript.

2

Se si è principalmente interessati alla convalida del modulo ... Suggerirei Akismet - il servizio gratuito wordpress per catturare lo spam.Funziona molto bene.

Se si sta tentando di salvare il server di una certa larghezza di banda ... la domanda è completamente diversa e probabilmente andrei in un altro modo, come impedire l'hot-linking.

Detto questo, nessuna soluzione è perfetta ma si dovrebbe cercare di attenersi a quella che fornisce un livello minimo di comfort e gli utenti con un massimo. È tutto sugli utenti.

1

Se si sta seguendo la rotta Captcha, è possibile utilizzare sempre Captcha invisibile.

Creare in modo semplice un controllo di input con un'etichetta che dice cosa è 5 + 2 e quindi utilizzare javascript risolvere questo e inserire il valore nella casella di testo, quindi nascondere il campo di testo. Quasi tutti i ragni non possono eseguire Javascript, qualsiasi utente normale non sanno nemmeno che sta succedendo, e qualsiasi utente senza Javascript vede solo il campo da compilare.

Google analytics funziona anche su JS in modo da poterlo usare?

15

a new captcha approach

Il fumetto è da XKCD.

+2

puramente fantastico. – pixelbobby

+2

http://xkcd.com/license.html –

1

Si consiglia di esaminare HttpCapabilitiesBase Class ci sono alcune proprietà complete di aiuto che possono essere in grado di utilizzare e le persone che esplorano il tuo sito non si accorgono.

Ad esempio, Browser, Crawler e forse Cookie. Ci sono un sacco di modi, ma questo richiederà un po 'di lavoro da parte vostra.

1

Poiché questa è una domanda sulla registrazione degli accessi alle pagine, penso che l'uso dei captcha sia invasivo. Non è possibile fare in modo che ogni visitatore compili un captcha o una registrazione prima di utilizzare il sito web.

E vuoi bloccare completamente gli spider o semplicemente ignorarli nei tuoi log?

Google Analytics è un buon esempio di ignorare i bot tramite JavaScript.

Questa potrebbe essere la soluzione. Avresti bisogno di un evento on load per inviare una richiesta al tuo server che ha registrato il colpo di pagina.

Si potrebbe persino aspettare che il mouse si muova prima di registrare il colpo.

0

È possibile rilevare robot/crawler noti in modo affidabile utilizzando le stringhe di user-agent. I "robot cattivi" richiedono una soluzione honeypot o simile. Sia spiegato nella mia risposta qui:

Detecting honest web crawlers

IP può essere cambiato e non sono affidabili.

Abbiamo anche notato che i bot (buoni e cattivi) tendono a non supportare javascript.