Se riesci a mettere un semplice CAPTCHA "digita il numero in questa immagine" e tieni quel bastone per 24 ore, sai che il tuo nemico è un dilettante. Sai che questo tipo di dispositivo primitivo che coinvolge un codice personalizzato li rallenterà per 24 ore. Potrebbe essere divertente :)
Vorrei fare un uso estensivo di fogli di stile per nascondere le informazioni nel codice della pagina: in due sensi, prima nascondi i CAPTCHA e poi nascondi le risposte informative. Con l'obiettivo di fuorviare sadicamente i raschiatori.
Vorrei scrivere un po 'di codice sul lato server per creare risposte false che sono credibili a prima vista, ma fasulle in modi non facilmente confermabili. Inoltre, utilizza il seeding casuale o MD5 per assicurarti che lo stesso input fornisca sempre la stessa risposta fasulla.
Ingannevole sui CAPTCHA:
Ad esempio, lascia l'ultimo sistema CAPTCHA che stavi utilizzando, ma usa i fogli di stile per nasconderlo. Segui con un CAPTCHA diverso, offuscato da Javascript; forse anche un altro reCaptcha con una chiave diversa.
Ora, lo scraper non si renderà conto che il primo CAPTCHA è stato soppresso con i fogli di stile. Risolverà allegramente il CAPTCHA e restituirà la risposta con la chiave sbagliata. Gotcha . Tuttavia, proprio come il cracking di Enigma, non puoi rendere ovvio che hai infranto il codice; il raschietto deve continuare a credere che funzioni .
Ingannevole nelle risposte:
presenta una risposta come di consueto, con un foglio di stile attorno ad essa. Il foglio di stile nasconde questo risultato alle persone normali; il raschietto ignora che questo foglio ha la proprietà "nascosta". La risposta che presenti qui è il falso . Presentare in seguito il vero risultato. Per i punti bonus, presenta i risultati in una grafica che li renda non graffiabili. Cerca di nasconderlo ovviamente.
Se hai una telemetria (risolto un CAPTCHA sbagliato) che indica che si tratta di una query raschiata, non preoccuparti nemmeno di acquistare il risultato della query dal tuo fornitore di servizi . Inserisci una sospensione (t + casuale) per il tipico intervallo di tempo impiegato dal tuo fornitore di servizi, quindi invia una risposta falsa.
Sembra normale
L'autore dell'attacco crederà che le cose funzionino normalmente e controllando solo la riuscita della query, non la qualità dei risultati. Con un po 'di fortuna, il tuo aggressore non avrà effettuato l'accesso quando ogni query è stata effettuata e sta semplicemente scaricando le risposte in un database. L'attaccante potrebbe impiegare parecchio tempo per rendersi conto che hai avvelenato i dati, a quel punto l'intero database sarebbe danneggiato, non avendo idea di quali voci siano valide e quali siano velenose (vedi l'importanza di rendere legittimi i dati falsi ?) Anche se l'aggressore ha timestampato ogni voce, che caccia al bug! Dover controllare manualmente diverse voci per ogni giorno per capire quando i dati sono andati male.
E ancora una cosa. Memorizza nella cache le risposte vere e, se una query botnet è nella cache, dai sempre la risposta corretta dalla cache. Quindi il raschietto, la risoluzione dei problemi, colpirà il tuo vero sito web con un browser e chiederà un numero di prova di 213-456-7890. L'occultamento funzionerà e si comporterà come una vera query, quindi calcolerai la risposta reale e la restituirai. Successivamente, lo scraper dirà alla botnet di richiedere 213-456-7890. Per vedere se il bot ottiene un risultato diverso. Rileverai la query del bot . Se ora dai una risposta falsa, il raschietto sa che la maschera è aperta e ripeterà una volta interrotto il rilevamento. Quindi dal momento che hai la vera risposta nella cache, dagli, anche nei campi nascosti. Ora, lo scraper è perplesso: la botnet sembra funzionare .
Perché e come
Ovviamente qualcuno trova preziosi i tuoi dati. Lo otterrebbero dalla tua fonte, ma non vogliono pagare per questo, quindi ti stanno raschiando.
- È possibile che siano effettivamente un sito web della concorrenza che fa la stessa cosa che fai tu e che ti generano una query quando ne riceve una dal loro visitatore. In sostanza questo è uno schema per utilizzare il tuo servizio ma pubblicare i loro annunci. Tu stesso conosci il valore di questo. Puoi verificarlo facendo query oscure e diverse su ogni sito della concorrenza e vedere quali query compaiono nei tuoi log.
Ci sono un'infinità di modi per risolvere i CAPTCHA. Nell'esempio di un sito Web della concorrenza che estrae i tuoi dati per i propri clienti, potrebbero semplicemente passare il tuo CAPTCHA ai propri clienti. Ci sono anche modi per indurre gli umani a fare CAPTCHA per te, come "risolvi i CAPTCHA e ottieni porno gratis", o offrendo un servizio non correlato che richiede CAPTCHA per qualche motivo, come una bacheca anonima. Ogni volta che qualcuno pubblica, ti invia una query e ottiene il suo poster per risolvere il tuo CAPTCHA. C'è anche CAPTCHA che risolve essenzialmente la schiavitù nel terzo mondo.