Come rilevare i bot facendo clic su un collegamento?

2

Possiedo un servizio di abbreviazione url. Voglio fornire solo statistiche legittime ai miei clienti. Esistono possibili scenari in cui un determinato utente scrive uno script per aprire automaticamente l'URL abbreviato, rendendo così le statistiche negative. Quali sono gli approcci che è possibile seguire per rilevare se un clic è legittimo o meno? L'approccio di base che posso pensare è quello di monitorare l'indirizzo IP dell'utente e bloccare se il numero di richieste supera una soglia.

    
posta Ishan Jain 07.02.2014 - 08:57
fonte

4 risposte

5

Esiste un certo numero di potenziali metodi che puoi utilizzare per differenziare i bot dagli umani ma nessuno di essi è probabile al 100%

Ovviamente, come dici tu, la velocità limite cattura i robot veramente stupidi che non sanno cliccare a velocità umana. Si potrebbe dire un clic per IP, ma questo defletterebbe artificialmente le tue statistiche nel caso degli umani dietro un proxy (diventando più comune man mano che gli indirizzi IPv4 si esauriscono)

Il blocco IP non è troppo utile ai tempi del cloud computing, è piuttosto facile per un utente malintenzionato ottenere un IP o un intervallo di IP diversi da utilizzare se sono dedicati abbastanza.

Come @fas dice che puoi provare l'user agent, ma di nuovo cattureranno solo i robot che non sanno come impostare un user-agent che non è davvero troppo difficile da fare.

Potresti introdurre alcune attività "informatiche" nel processo di clic, ma ciò renderebbe il tuo sito piuttosto ostile (ad esempio CAPTCHA). Di nuovo non al 100% ma più difficile da superare banalmente.

In definitiva, suggerirei che dipende da quanto i tuoi aggressori sono motivati / ben finanziati. Se sono ragionevolmente motivati e hanno un po 'di denaro, possono semplicemente assumere persone reali per fare clic sul link (ad esempio tramite il turk meccanico amazzonico), a quel punto probabilmente troverai difficile distinguere il traffico legittimo dal traffico non legittimo.

Supponendo che i tuoi aggressori siano più casuali al riguardo, direi combinare User Agent e indirizzo IP di origine. Gli agenti utente possono effettivamente essere relativamente identificativi (maggiori informazioni sul panopticlick site ). Quindi, se si limita ogni agente utente a un clic per indirizzo IP sorgente, si può ottenere un'approssimazione decente, contro un aggressore relativamente poco sofisticato.

    
risposta data 07.02.2014 - 09:59
fonte
1

La risposta di Owen in alto mi ha ricordato qualcosa di molto poco tecnologico ma semplice ed efficace che ho provato. Per avere un'idea di quanto male i bot stiano distorcendo le mie statistiche sui click, - proprio accanto al mio banner grafico di affiliazione - Ho una gif trasparente a un pixel che è anche racchiusa in un tag href. Penso che si possa dedurre che solo i bot farebbero clic su quel link invisibile, quindi mi limito a confrontare il numero di clic per il banner di affiliazione rispetto al link GIF trasparente a 1 pixel.

    
risposta data 25.10.2014 - 15:26
fonte
0

Prova a cercare agenti utente e referer validi. Gli agenti utente possono sempre essere falsificati, ma è la soluzione migliore. Anche se un bot sta facendo clic, considererei il traffico.

    
risposta data 07.02.2014 - 08:59
fonte
0

Un piccolo metodo che ho appena pensato (e probabilmente è già stato fatto prima):

Quando si fa clic su un collegamento con un mouse, viene generato un evento e anche una proprietà clientX e un'altra clientY che restituiscono la posizione del dispositivo di puntamento quando si fa clic sul collegamento.

Se viene fatto clic su un collegamento utilizzando un trigger ECMAScript dell'evento click, le proprietà clientX e clientY sono entrambe non impostate .

Se interrompi un evento click e controlli se sono impostati clientX o clientY , puoi iniziare a rilevare eventi attivati da remoto. Ovviamente, questo ha lo svantaggio di disabilitare in modo efficace eventi di clic innescati che l'applicazione potrebbe già utilizzare legittimamente e, per risolvere il problema, potrebbe essere necessario creare una sorta di metodo per distinguere tra clic "validi" e "non validi" - una sorta di fai clic su Motore di autenticazione.

Questa è un'idea molto semplice, e non l'ho perfezionata o testata bene, ma forse ti sarà utile. Ho creato una demo CodePen approssimativa che evidenzia la funzionalità, con una versione semplice del codice che potrebbe essere eseguita.

Non l'ho verificato su un dispositivo touch, e potresti scoprire che anche gli eventi Touch non restituiscono queste proprietà, il che significa che potrebbe essere necessario trovare una proprietà alternativa da controllare sui dispositivi touch, se ciò dovesse funzionare in modo efficace.

In termini di pensiero sul cielo blu, non è poi così male, e potrebbe aiutarti a formare un approccio più convincente per evitare il clickjacking.

link

    
risposta data 07.02.2014 - 13:41
fonte

Leggi altre domande sui tag