rilevamento bot tramite fingerprinting del browser

13

Recentemente ho notato che alcune aziende hanno iniziato a offrire servizi di protezione bot e scraping basati sull'idea di fingerprinting del browser per rilevarli, e quindi bloccando l'impronta digitale specifica dall'accesso al sito (piuttosto che bloccare l'IP).

Ecco alcuni esempi:

Ci sono delle differenze tra di loro, ma a quanto pare tutte queste aziende usano Javascript per ottenere campi specifici del browser come plug-in, caratteri e dimensioni dello schermo e risoluzione, combinarli con quelli che possono essere ottenuti dalle intestazioni HTTP e usare questi dati per classificare il client come bot / human.

La mia domanda allora è: questo approccio è abbastanza solido? Quanto sarebbe difficile per un utente malintenzionato falsificare tutti i campi dati che il client Javascript annusa (plugin, caratteri, sistema operativo, ecc.)? Quale misura di protezione fornisce questo approccio - solo contro i robot non molto sofisticati, o è davvero così difficile da superare?

    
posta WeaselFox 29.10.2014 - 07:31
fonte

4 risposte

7

Ho visto servizi simili che funzionano come proxy e codificano tutte le tue pagine web in alcuni Javascript realmente offuscati, in modo che un vero browser non avrebbe problemi a navigare in quel sito mentre sarebbe davvero difficile, se non impossibile (cosa succederebbe se il JS era casuale e diverso per ogni richiesta) per un raschietto convenzionale per fare lo stesso.

Il problema è che è davvero facile sconfiggere tutti questi approcci semplicemente eseguendo un browser reale e senza perdere tempo a creare un raschietto.

Dai un'occhiata a Selenium WebDriver , che ti consente di collegarti a un browser reale e controllarlo a livello di programmazione - nessuno di queste soluzioni la rileverà poiché appare come un'installazione pulita di Firefox (o Chrome, o uno dei browser supportati) verso l'esterno.

Invece di perdere tempo a cercare di bloccare i bot, chiediti perché vuoi bloccarli - se sovraccaricano il tuo server web, implementano limiti di velocità basati su IP, se stanno inviando spam implementano alcuni captcha, altrimenti Lasciali stare, non ti stanno facendo del male.

    
risposta data 28.11.2014 - 17:11
fonte
4

Questa procedura è probabilmente utile per identificare e bloccare un gran numero di bot, ma le persone che vogliono rubare i tuoi dati, personalizzeranno e randomizzeranno il più possibile per evitare il rilevamento. Allora No. Questo approccio non è il più efficace contro i raschietti più sofisticati.

Ho visto gli scrapers cambiare completamente le loro richieste HTTP diverse volte al giorno. Queste aziende stanno investendo denaro per condurre la propria attività e cercheranno di trovare un modo per evitare queste rilevazioni statiche .

L'unico modo per bloccare questo traffico è aggiungere regole di blocco manualmente o sviluppando un grosso algoritmo che elabora altri comportamenti, quali: differenze di tempo tra richieste, ordini di parametri, ID di sessione condivisa, ecc.

    
risposta data 24.02.2015 - 11:32
fonte
3

Leggendo la copia di marketing dai link, il tipo di "bot" di cui si parla non è un tipico "browser", ma spesso solo uno script semplice o addirittura il venerabile wget .

Se questo è il caso, allora è banale determinare se uno script sta navigando o se è un browser a tutti gli effetti. Ma, come sospetti, se qualcuno è interessato a sconfiggere questi bot-bloccanti, è anche banale fornire dati falsi al server per apparire come se fosse un browser valido.

Ad esempio, ho creato un web rasatore basato su Python che fornisce al server una UA preconfigurata (nel mio caso si annuncia come script). Per quanto riguarda gli altri dati (font installati), anche se non l'ho fatto da solo, sono fiducioso che se un browser può essere configurato per rispondere con i dati, allora anche un "bot" può.

    
risposta data 29.10.2014 - 15:51
fonte
2

Come tutti hanno già risposto, non è possibile rilevare i bot tramite il solo fingerprinting del browser.

ShieldSquare, essendo un'azienda di rilevamento dei bot che trascorriamo la maggior parte del tempo con i bot, direi che è possibile rilevare i bot, insieme all'impronta del dispositivo JS saranno prese in considerazione altre cose:

  • Comportamento dell'utente [È possibile analizzare ciò che l'utente sta facendo sul sito Web, indipendentemente dal fatto che l'utente stia eseguendo un modello di ampiezza o un modello di profondità. Quanti minuti trascorre l'utente sul sito web, quante pagine ha visitato l'utente]

  • Reputazione IP [Osservando la cronologia IP, No di visite dall'IP o ha pattern e anche Network Forensics può essere fatto sulla richiesta ricevuta e identifica se la richiesta proviene da IP di Tor / Proxy.]

  • Convalida del browser

In realtà, tutti questi calcoli possono essere fatti con 7ms.

    
risposta data 09.04.2015 - 13:58
fonte

Leggi altre domande sui tag