Ho accettato una risposta, ma purtroppo credo che siamo bloccati con il nostro scenario peggiore originale: CAPTCHA tutti nei tentativi di acquisto della merda . Breve spiegazione: le cache / web farm rendono impossibile tenere traccia degli hit e qualsiasi soluzione alternativa (invio di un web beacon non memorizzato nella cache, scrittura su una tabella unificata, ecc.) Rallenta il sito in modo peggiore rispetto ai bot. Probabilmente esiste un hardware costoso di Cisco o simili che può aiutare a un livello elevato, ma è difficile giustificare il costo se CAPTCHA è una alternativa per tutti. Cercherò una spiegazione più completa in seguito, oltre a ripulirla per i futuri ricercatori (anche se altri sono invitati a provare, poiché è wiki della comunità).
Situazione
Si tratta delle vendite di cazzate su woot.com. Sono il presidente di Woot Workshop, la consociata di Woot che si occupa della progettazione, scrive descrizioni dei prodotti, podcast, post di blog e modera i forum. Lavoro con CSS / HTML e conosco a malapena altre tecnologie. Lavoro a stretto contatto con gli sviluppatori e ho parlato di tutte le risposte qui (e di molte altre idee che abbiamo avuto).
L'usabilità è una parte enorme del mio lavoro e rendere il sito eccitante e divertente è la maggior parte del resto. Ecco dove derivano i tre obiettivi sottostanti. CAPTCHA danneggia l'usabilità e i robot rubano il divertimento e l'eccitazione delle nostre vendite di merda.
I robot stanno sbattendo la nostra prima pagina decine di volte una seconda schermata che raschia (e / o scansiona il nostro RSS) per la vendita di Schifezze Casuali. Nel momento in cui lo vedono, innesca una seconda fase del programma che accede, fa clic su I want One, compila il modulo e acquista la merda.
Valutazione
lc : su StackOverflow e altri siti che utilizzano questo metodo, hanno quasi sempre a che fare con utenti autenticati (registrati), perché l'attività che si sta tentando lo richiede.
Su Woot, gli utenti anonimi (non registrati) possono visualizzare la nostra home page. In altre parole, i robot che sbattono possono essere non autenticati (e sostanzialmente non tracciabili tranne che per indirizzo IP).
Quindi torniamo alla ricerca di IP, che a) è abbastanza inutile in questa era di reti cloud e zombie spambot eb) cattura troppi innocenti dato il numero di aziende che provengono da un indirizzo IP (per non parlare dei problemi con ISP IP non statici e potenziali risultati delle prestazioni nel tentativo di rintracciarlo).
Oh, e avere persone che ci chiamano sarebbe lo scenario peggiore possibile. Possiamo farti chiamare?
BradC : I metodi di Ned Batchelder sembrano piuttosto interessanti, ma sono abbastanza ben progettati per sconfiggere i bot creati per una rete di siti. Il nostro problema è che i robot sono creati appositamente per sconfiggere il nostro sito. Alcuni di questi metodi potrebbero probabilmente funzionare per un breve periodo di tempo fino a quando gli script non hanno evoluto i loro bot per ignorare l'honeypot, lo screen-scrape per i nomi delle etichette nelle vicinanze invece degli ID dei moduli e utilizzare un controllo browser compatibile con javascript.
Ancora una volta : "A meno che, ovviamente, l'hype faccia parte del tuo schema di marketing." Sì, lo è sicuramente. La sorpresa di quando appare l'oggetto, così come l'eccitazione se riesci a ottenerne uno è probabilmente tanto o più importante della merda che effettivamente ottieni. Tutto ciò che elimina il primo arrivato / primo servito è dannoso per il brivido di "vincere" la merda.
novatrust : E, per uno, accolgo con favore i nostri nuovi signori bot. In realtà offriamo RSSfeed per consentire alle app di terze parti di scansionare il nostro sito alla ricerca di informazioni sui prodotti, ma non in anticipo rispetto all'HTML del sito principale. Se lo sto interpretando bene, la tua soluzione aiuta l'obiettivo 2 (problemi di prestazioni) sacrificando completamente l'obiettivo 1 e semplicemente dimettendosi dal fatto che i robot compreranno la maggior parte della merda. Ho votato a favore della tua risposta, perché il tuo ultimo pessimismo del paragrafo mi sembra accurato. Sembra che qui non ci siano proiettili d'argento.
Le altre risposte si basano generalmente sul tracciamento IP, che, di nuovo, sembra sia inutile (con reti bot / zombi / rete cloud) sia dannoso (catturare molti innocenti che provengono da destinazioni dello stesso IP).
Altri approcci / idee? I miei sviluppatori continuano a dire "facciamo semplicemente CAPTCHA" ma spero che ci siano metodi meno invadenti per tutti gli umani reali che vogliono un po 'della nostra merda.
Domanda originale
Supponiamo che tu stia vendendo qualcosa di economico che ha un valore percepito molto elevato e che hai un importo molto limitato. Nessuno sa esattamente quando venderai questo oggetto. E oltre un milione di persone vengono regolarmente per vedere cosa stai vendendo.
Ti ritrovi con scripter e robot che tentano di capire programmaticamente [a] quando vendi detto articolo, e [b] assicurati che siano tra i primi a comprarlo. Questo fa schifo per due motivi:
- Il tuo sito è bloccato da non umani, rallentando tutto per tutti.
- Gli scripter finiscono per "vincere" il prodotto, facendo sentire tristi i clienti abituali.
Una soluzione apparentemente ovvia è quella di creare dei cerchi che i tuoi utenti possano saltare prima di effettuare l'ordine, ma ci sono almeno tre problemi con questo:
- L'esperienza dell'utente fa schifo per gli umani, poiché devono decifrare CAPTCHA, scegliere il gatto o risolvere un problema di matematica.
- Se il beneficio percepito è abbastanza alto e la folla abbastanza grande, alcuni gruppi troveranno il modo di aggirare qualsiasi modifica, portando a una corsa agli armamenti. (Ciò è particolarmente vero quanto più semplice è la modifica; modulo nascosto di "commenti", riorganizzazione degli elementi del modulo, etichettatura errata, testo nascosto di "gotcha" tutto funzionerà una volta e quindi dovrà essere modificato per combattere il targeting di questo modulo specifico .)
- Anche se gli scripter non riescono a "risolvere" il tuo tweak, ciò non impedisce loro di sbattere la tua prima pagina, e quindi emettere un allarme affinché lo scripter compili manualmente l'ordine. Dato che traggono vantaggio dalla risoluzione di [a], probabilmente vinceranno ancora [b] poiché saranno i primi umani a raggiungere la pagina dell'ordine. Inoltre, 1. si verifica ancora, causando errori del server e una riduzione delle prestazioni per tutti.
Un'altra soluzione è quella di controllare se gli IP colpiscono troppo spesso, bloccarli dal firewall o impedire loro di ordinare. Questo potrebbe risolvere il 2. e prevenire [b] ma il colpo di prestazione della scansione per gli IP è enorme e probabilmente causerebbe più problemi come 1. che gli scripter stavano causando da soli. Inoltre, la possibilità di rete in rete e zombie spambot rende il controllo IP abbastanza inutile.
Una terza idea, forzando il caricamento del modulo d'ordine per un po 'di tempo (diciamo, mezzo secondo) potrebbe potenzialmente rallentare l'avanzamento degli ordini rapidi, ma, ancora una volta, gli scripter sarebbero ancora i primi a entrare, a qualsiasi velocità non dannosa per utenti reali.
obiettivi
- Vendi l'oggetto a umani non scripting.
- Mantieni il sito in esecuzione a una velocità non rallentata dai robot.
- Non disturbare gli utenti "normali" con nessuna attività da completare per dimostrare che sono umani.