risposta-alla-domanda-sullo-sviluppo-web-bd.com

Fermare gli scripter dallo sbattere il tuo sito web

Ho accettato una risposta, ma purtroppo credo che siamo bloccati nel nostro scenario peggiore originale: CAPTCHA tutti nei tentativi di acquisto della merda . Breve spiegazione: la memorizzazione nella cache/web farm rende 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), poiché 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 fermamente progettati per sconfiggere i robot 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 anziché gli ID dei moduli e utilizzare un controllo browser abilitato a javascript.

lc again : "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 finisci per ottenere. 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 stai 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:

  1. Il tuo sito è bloccato da non umani, rallentando tutto per tutti.
  2. 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 Tweak, portando a una corsa agli armamenti. (Ciò è particolarmente vero quanto più semplice è Tweak; 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 script non sono in grado di "risolvere" il tuo Tweak, ciò non impedisce loro di sbattere la tua prima pagina, e quindi emettere un allarme per lo script per completare manualmente l'ordine. Dato che ottengono il 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 è controllare gli IP che 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

  1. Vendi l'oggetto a umani non scripting.
  2. Mantieni il sito in esecuzione a una velocità non rallentata dai robot.
  3. Non disturbare gli utenti "normali" con nessuna attività da completare per dimostrare che sono umani.
486
Dave Rutledge

Dovresti avere un registro degli utenti che hanno acquistato BOC più spesso, perché non semplicemente vietare quegli account o qualcosa del genere. Sicuramente gli utenti legittimi verranno bannati in questo processo, ma tu sei un'azienda che fornisce un prodotto e se sei stato abusato da un gruppo di utenti e così hai il diritto di rifiutare il loro servizio. Hai molte informazioni sui tuoi utenti, inclusi Paypal e conti bancari, potresti vietare quegli account costringendo gli utenti bot a ottenere nuovi account. Certamente potrei inventare uno script per comprare BOC tutto il tempo o semplicemente scaricarne uno dalla rete, ma ho una morale migliore di quella. Non avendo mai acquistato BOC con successo, conosco la frustrazione degli utenti legittimi che vorrebbero ricevere un BOC nella speranza di ottenere molto. Forse invece di offrire un BOC come singolo articolo ogni tanto, potresti semplicemente darlo a utenti casuali ogni giorno. Quando ricevono un oggetto ricevono una piccola nota e un altro elemento che dice che hanno anche ricevuto un BOC. Quindi l'unico modo in cui qualcuno potrebbe ottenere un BOC è se legittimamente acquistassero qualcosa che solo un vero uomo avrebbe voluto. Non ci sarebbe niente di meglio che acquistare una caffettiera o qualcosa del genere e ricevere anche una TV da 42 "o qualcosa in aggiunta al tuo acquisto legittimo. Penso che la maggior parte dei kiddie di script non sarebbe più interessata al tuo sito se per ottenere un BOC dovrebbero anche impegnarsi per un acquisto di oltre 10 dollari.

0
hsquee

Scusami se questa risposta è già stata inviata. Ci sono molte risposte per cercare di leggerle e comprenderle tutte.

Perché non potresti semplicemente cambiare l'API di acquisto di tanto in tanto? Non sarebbe completamente trasparente per gli utenti umani e praticamente ucciderebbe la maggior parte degli acquirenti di bot?

Un'implementazione sarebbe quella di cambiare i nomi dei campi che l'utente deve compilare e inviare sulla pagina dopo aver premuto il pulsante "I Want One". Quante volte all'anno vendi effettivamente BOC? Non così spesso. Quindi questo non sarebbe un enorme onere di programmazione per avere un'API di acquisto diversa programmata, testata e pronta per l'uso ogni volta che un BOC viene messo in vendita.

Assicurati solo che i robot che utilizzano l'API precedente e errata non arrestino il server. Forse ospitare ogni volta anche l'API di acquisto BOC su un server diverso. In questo modo i bot possono far crollare un server che non viene effettivamente utilizzato da noi acquirenti BOC umani.

0
Kurt W. Leucht

a tal fine utilizzo Cloudflare in quanto non influisce sul mio sito ma blocca automaticamente qualsiasi utente malintenzionato con CAPTCHA e offre più funzionalità.

0

Se ho capito bene, il tuo problema più grande è con lo scraping dello schermo, non con l'acquisto automatico stesso.

In tal caso, il tuo passo più efficace sarebbe sconfiggere lo scraping dello schermo codificando in modo casuale la pagina in modo che appaia uguale (tipo di) ma sia sempre diversa a livello di codice. (usa codici esadecimali, codifica Java, immagini, cambia la struttura del codice circostante ...)

Ciò li costringerebbe a riscrivere costantemente il loro codice di scraping e quindi renderebbe molto più costoso per loro acquistare automaticamente la "merda". Se riescono a gestirlo. Probabilmente continuerebbero a colpire il tuo sito Web per un po 'fino a quando non si renderanno conto di non poter ottenere nulla da esso e rilasciarlo.

L'aspetto negativo di confondere l'inferno dei robot è che confonderà anche l'inferno dei crawler dei motori di ricerca.

0
Sylverdrag

Oggi farai abbastanza soldi per pagare il programma CAPTCHA di Cisco !! Siamo tutti abituati a comprare biglietti per concerti e altre cose ... Sembra giusto. Il modo in cui viene fatto oggi è sconvolgere alcuni e sollevare domande su una lotteria o spazzate. Sono sicuro che lo hai verificato prima di provare, ma non è davvero un modo divertente per acquistare BOC ... Prende tutto l'eccitazione!

Ottenere il BOC per primo o un ottimo prodotto anche se si è in vista attira le persone a Woot. Se non c'è motivo di rimanere in giro e acquistare tonnellate di cose che non ti servono mentre aspetti il ​​BOC casuale, le vendite diminuiranno. Il CAPTCHA potrebbe essere l'unico modo per sconfiggere queste persone e mantenere ancora l'eccitazione di Woot.

Sono stato uno dei primi a ottenerlo per ordinare un BOC l'ultima volta e il mio primo ordine è stato scaricato con il milione di spedizioni e il secondo è andato a buon fine, ma è stato rimosso dal mio account in seguito. Ero arrabbiato. Ho lasciato Woot e non ho acquistato oggetti come facevo in passato in altri giorni. Ero disposto a riprovare, in questo modo, oggi. Dubito che lo farò in futuro senza un CAPTCHA per le cose divertenti.

Ci sono molti siti che cercano di essere come Woot. Ovviamente non sono all'altezza del tuo livello. Mi ritrovo a leggere la descrizione di un prodotto, non perché lo voglio, ma controllo anche per ridere. Non vorrei vedere qualcuno entrare con un programma più giusto e portare via la maggior parte dei tuoi affari.

Solo la mia opinione. Non so quasi nulla di robot e computer da quando sono un'infermiera .. Ma il mio voto è di passare al livello superiore ... I ragazzi con i robot dovrebbero solo mettersi in linea con il resto di noi e questo è il modo dovrebbe essere :) Lori

0
Lori

Per quanto riguarda CAPTCHA, perché non usare la soluzione di Google che richiede solo CAPTCHA da IP che sospetti siano bot o anche solo utenti che martellano il sito? Sono sicuro che chiedere a qualcuno un CAPTCHA quando acquistano non è poi così male se hanno martellato il sito comunque, è quasi lo stesso che stare in piedi e colpire ripetutamente F5. Ciò o forse richiede un CAPTCHA periodico durante il martellamento, diciamo ogni cento (forse più piccolo?) O giù di lì, per impedire il funzionamento dei robot di allarme. Hai bisogno di una sorta di CAPTCHA per evitare l'imbottigliamento, ma devi anche tenere conto del fatto che i tuoi utenti reali agiranno come dei robot.

0
Aaron M

Perché non cambi il nome e l'immagine del BOC ogni volta che lo offri? Sarebbe diventato parte del divertimento del wooting vedere l'ultima iterazione del BOC.

0
John

Da tempo (4 anni) utente di Woot.com e acquirente di alcuni sacchi di merda, tra i tanti altri oggetti che ora occupano spazio nel mio garage, sembra che la soluzione dovrebbe essere parte del tema generale di Woot.

Usa captcha, ma con una vena umoristica. Proprio come la promozione da $ 1,000,000, crea un gioco per identificarti come persona. Ciò ha ritardato in passato il "tutto esaurito" del BOC per un ragionevole lasso di tempo, mentre le persone, come me, si affrettano a capire il puzzle abbastanza semplice ma divertente per inserire un codice coupon.

Inoltre, mentre le persone si lamentano all'infinito per gli errori del server, non smettono di tornare. Parte del brivido di un BOC secondo me è il fatto che ci sono milioni di persone che cercano di ottenerne uno. Se i server generano un errore o una pagina funky, è un segno che sono da qualche parte in un gruppo di troppe persone che cercano di ottenere uno dei 1500 prodotti.

Se metti tanta creatività nella costruzione del puzzle, ed è abbastanza originale, ritarderà i robot abbastanza a lungo da dare a tutti gli altri la possibilità. Incorporando una parola casuale catturata come codice, inserendo una pagina intermedia tra "I Want One" e la pagina di acquisto, che richiede un'interazione unicamente umana, hai fermato i robot lì, fino a quando non capiscono cosa deve accadere.

• Non hai implementato un captcha noioso e talvolta dolorosamente difficile da leggere • hai reso il processo più divertente, • hai ridotto il carico sul server di acquisto sicuro effettivo • Formerai gli utenti di cui avranno bisogno "FARE" qualcosa per ottenere un BOC • Avrai interrotto i robot nella pagina intermedia, ritardando i loro acquisti fino a quando la maggior parte delle persone avrà almeno avuto la possibilità di provare a capire il puzzle divertente, ma non terribilmente difficile.
• Dato che essere casuali è ciò che riguarda un BOC, un puzzle/compito casuale e mutevole si adatterebbe semplicemente all'intero tono di un BOC.

Durante l'esperimento, la tecnologia dietro la pagina provvisoria può diventare più avanzata, con informazioni casuali che possono essere acquisite per l'uso nella pagina di acquisto. Da

Ho acquistato, senza l'ausilio di robot, né script diversi da wootalyzer, che ritengo un aiuto accettabile, 7 BOC dal 31/05/05. Il migliore, che non ho avuto, è stato il Please Please Me BOC. Anche le batterie B&D sono state divertenti, ma immagino che non abbiano sconcertato i robot, frustrato solo gli utenti normali.

A volte la migliore soluzione per un problema di tecnologia, non è più tecnologia.

0
Scott Shultis

Che cosa succede se si randomizzano o crittografano i nomi e gli ID del modulo, si randomizza l'ordine dei campi del modulo e si rende il modulo etichetta un'immagine captcha casuale, che renderebbe un attacco di script molto più difficile :-D

0
Zach Smith

Rendi l'intera pagina sanguinosa un CAPTCHA!
Sorta come Sesame Street ... otto di queste cose, non appartengono qui ...

Inserisci 9 elementi, 9 moduli HTML, 9 I WANT ONE pulsanti sullo schermo.
(9 è solo il numero del giorno ... scegli il numero che desideri per rendere il layout ancora buono. 12. Forse. Forse personalizzalo per la risoluzione del browser di caricamento ...)

E rimescolarli per ogni persona.
Assicurati che il BOC debba essere "visto" per sapere quale sia ... ovviamente questo significa che anche gli altri 8 devono essere "visti solo", per sapere che NON sono l'oggetto da acquistare.
Assicurati di usare solo numeri assurdi per fare riferimento a tutto ciò che sta dietro le quinte sulla fonte della pagina. Bene, quindi il BOT vede il suo tempo BOC ... ma sarà una supposizione sfrenata scegliere il modulo HTML giusto da inviare per l'elaborazione.

0
Pother

Sai, se avessi pubblicato il tuo feed RSS usando pubsubhubbub, le persone non avrebbero dovuto visitare ripetutamente la tua pagina web per vedere la prossima cosa nel Woot-off, avrebbero semplicemente aspettato che comparisse sul loro Google Lettore.

0
Paul Tomblin

Una potenziale soluzione al tuo problema specifico (e non a quello generale) sarebbe quella di richiedere agli utenti di accedere se vogliono vedere la "merda". Mostra solo i premi di merda agli utenti che hanno effettuato l'accesso. Tutti gli altri elementi possono rimanere visualizzabili dagli utenti non registrati come sempre. Quindi ai tuoi fedeli utenti viene data la priorità assoluta alla merda.

Dovresti ovviamente avvisare i tuoi utenti di questo, forse con una notifica che questo viene fatto per aumentare le possibilità che gli utenti reali trovino la merda.

Se il tuo problema specifico è la raccolta di bot per un particolare tipo di oggetto, prendi l'alternativa meno restrittiva e difendi solo da quel particolare attacco. Questa opzione eviterebbe quindi captchyas e il colpo di userability di cui sei preoccupato.

Se i robot accedono e iniziano a inviare spam, è possibile forzare il logout e bloccare l'account.

Se sono lì solo per prendere la borsa, se ne andranno abbastanza rapidamente e la tua pagina non subirà i grandi successi. Dimentica le soluzioni altamente tecniche.

0
Josh Smeaton

2 cose:

soluzione di livello server: mod_evasive (se usi Apache)

http://www.zdziarski.com/projects/mod_evasive/

soluzione di livello frontale: captcha inverso o altro captcha non invadente

http://www.ccs.uottawa.ca/webmaster/reverse-captcha.html

0
jacktrade

Crea una semplice regola firewall IP che elenca l'indirizzo IP se rilevi più di un max. numero di richieste in arrivo al secondo.

0
Kiffin

Avvertenze iniziali:

Non sono letterato; Non ho letto molti degli altri commenti qui.

Mi sono imbattuto in questo dalla descrizione di Woot questa mattina. Ho pensato che alcuni commenti di un utente moderato dei siti di woot (e due volte acquirente manuale di BOC) potrebbero essere utili.

Woot si trova in una posizione unica in cui si trova entrambi un sito commerciale e una destinazione con utenti fedeli, e capisco la delicatezza percepita di quell'equilibrio. Ma personalmente sento la tua preoccupazione per "l'impatto negativo dell'utente" di un Crap-CAPCHA ("CRAPCHA" - in qualche modo dubito di essere il primo a fare quel bavaglio) sugli utenti è molto sopravvalutato. Come utente sarei felice di dimostrare che sono umano. E mi fido di Woot per rendere il processo divertente e interessante, integrandolo nell'esperienza complessiva.

Questo porterà alla "corsa agli armamenti" postulata? Non lo so, ma può solo aiutare. Se, diciamo, le informazioni chiave da acquistare sono incluse nell'immagine del prodotto o implicite nella descrizione del prodotto (in un modo diverso ogni volta), il meglio che uno script potrebbe fare sarebbe aprire una pagina di acquisto al rilevamento di C-Word . In realtà, penso che vada bene: devi comunque essere on-line e il primo arrivato, primo servito, si applica ancora - Wootalyzer e strumenti simili aumentano semplicemente consapevolezza piuttosto che automatizzare l'acquisto mentre dormo o lavoro.

Buona fortuna a capirlo, e continuate così.

JGM

0
JGM

Stai diventando così difficile. Probabilmente mi prenderò a calci da quando ho appena vinto un BOC dal sito oggi con un sito bot, ma ho appena inserito il testo RANDOM CRAP in captcha sulla pagina principale del sito. Tutti i robot cercano il testo "RANDOM CRAP". Quindi, in pratica, eviti semplicemente di innescarli in primo luogo. Chiunque guardi con gli occhi vedrà che dice "Schifezza casuale".

0
Justin

Che ne dici di vendere le chiavi RSA a ciascun utente :) Ehi, se possono farlo per WoW, voi ragazzi dovreste essere in grado di farlo.

Mi aspetto un CdA per la mia risposta;)

0
Aelver

Perché non rendere la prima pagina solo un elemento grafico mappato all'immagine (tutta un'immagine senza etichette, tag, ecc.)? Facile per un essere umano da leggere e comprendere praticamente su qualsiasi dispositivo, ma impossibile per un bot da interrogare. In sostanza, trasforma l'intera pagina iniziale in un captcha.

0
Andrew

Probabilmente non c'è un magico proiettile d'argento che si prenderà cura dei robot, ma una combinazione di questi suggerimenti può aiutare a scoraggiarli e ridurli a un numero più gestibile.
Per favore fatemi sapere se avete bisogno di chiarimenti su uno di questi suggerimenti:

  • Tutte le immagini che descrivono l'elemento devono avere sempre lo stesso nome di immagine (come "current_item.jpg") o devono essere un nome casuale che cambia per ogni richiesta. Il server dovrebbe sapere qual è l'elemento corrente e fornirà l'immagine appropriata. Questa immagine dovrebbe anche avere una quantità casuale di imbottitura per ridurre i robot confrontando le dimensioni dell'immagine. (Forse cambiando una filigrana di qualche tipo per scoraggiare i robot più sofisticati).
  • Rimuovi il testo ALT da queste immagini. Questo testo è in genere informazioni ridondanti che possono essere trovate altrove nelle pagine o renderle di testo alternativo generico (come "L'immagine dell'elemento corrente sarebbe qui").
  • La descrizione potrebbe cambiare ogni volta che compare una Borsa di merda. Potrebbe ruotare (in modo casuale) tra un numero di nomi diversi: "Random Crap", "BoC", "Crappy Crap", ecc ...
  • Woot potrebbe anche offrire più articoli al prezzo di "Random Crap" o avere un prezzo casuale compreso tra $ 0,95 e $ 1,05 (cambia il prezzo solo una volta per ogni volta che viene fuori la merda, non per ogni utente, per correttezza)
  • Il prezzo, la descrizione e altre aree che differenziano un BoC dagli altri Woot potrebbero essere immagini anziché testo.
  • Questi campi potrebbero anche essere Java (non javaScript) o Flash. Sebbene dipendente da un plug-in di terze parti, renderebbe più difficile per i robot raschiare il tuo sito in modo utile.
  • L'uso di una combinazione di immagini, Java, Flash e forse altre tecnologie sarebbe un altro modo per renderlo più difficile per i robot. Questo sarebbe un po 'più difficile da gestire, poiché gli amministratori dovrebbero conoscere molte piattaforme diverse.
  • Esistono altri modi per offuscare queste informazioni. L'uso di una combinazione di scripting lato client (javascript, ecc.) E offuscamento lato server (nomi di immagini casuali) sarebbe il modo più probabile di farlo senza influire sull'esperienza dell'utente. L'aggiunta di alcuni Java e/o Flash offuscati o simili renderebbe più difficile, con un impatto minimo su alcuni utenti.
  • Combina alcune di queste tattiche con alcune che sono state menzionate sopra: se una pagina viene ricaricata più di x volte al minuto, quindi cambia il nome dell'immagine (se ti è stato suggerito un nome di immagine statica sopra indicato) o dai loro una pagina cache di due minuti .
  • Ci sono alcune cose molto sofisticate che potresti fare sul back-end con il monitoraggio del comportamento degli utenti che potrebbero non richiedere troppo elaborazione. È possibile scaricare quel lavoro su un server dedicato per ridurre al minimo l'impatto sulle prestazioni. Prendere alcuni dati dalla richiesta e inviarli a un server dedicato in grado di elaborare tali dati. Se trova un bot sospetto, in base al suo comportamento, può inviare un hook a un altro server (firewall, server, router di routing front-end, ecc. OR web back-end o server di contenuti) per aggiungere altri sicurezza per questi utenti. magari aggiungere Java applet per questi utenti o richiedere ulteriori informazioni dall'utente (non precompilare tutti i campi nella pagina dell'ordine, svuotando ogni volta un campo diverso in modo casuale, ecc.).
0
T B

Probabilmente non capisco completamente il problema, ma questa idea mi è venuta in mente. Utilizzare AJAX per disegnare e aggiornare il contenuto dinamico a un intervallo fisso, rallentando deliberatamente il caricamento dell'intera pagina mediante l'aggiornamento.

Ad esempio, fai in modo che l'intera pagina impieghi 15 secondi interi per disegnare la prima volta che viene visitata, dopo di che il contenuto dinamico viene automaticamente aggiornato usando AJAX dopo un tempo impostato di, diciamo, 5 secondi. Sarebbe un grosso svantaggio fare una ricarica a piena pagina. La pagina può visualizzare regolarmente nuove informazioni (compresi gli annunci), ma un ridisegno di una pagina intera tramite ricarica sarebbe notevolmente più lento.

Sarà possibile per gli script kiddie capire la query AJAX e automatizzarla ma, quindi, sarebbe anche molto semplice limitare tali richieste dallo stesso IP. Poiché non esiste un metodo tipico per un utente umano standard per avviare tali richieste dal browser, sarebbe ovvio che le richieste ad alta velocità all'URL AJAX dallo stesso IP sarebbero state avviate da una qualche forma di automatizzata sistema.

0
bhsimon

utilizzare la limitazione della connessione simultanea per indirizzo IP tramite iptables sul server (se è basato su Linux) o utilizzare un "router" dedicato

0
tagno25

Due soluzioni, una high-tech e una low-tech.

Prima l'high-tech: le offerte BOC si esauriscono in pochi secondi perché i bot ne ottengono molti nei primi millisecondi. Quindi, invece di provare a sconfiggere i robot, vendi loro quello che stanno cercando: un sacco di merda. Merda senza valore, ovviamente: graffette piegate e foto contaminate di Rosie O'Donnell. Quindi avere ritardi casuali incorporati sul server per alcuni secondi alla volta. Man mano che la vendita continua, il valore effettivo del prodotto venduto aumenterà mentre il prezzo di vendita no. In questo modo i primi acquirenti (robot nei primi millisecondi) otterranno qualcosa che vale molto meno di quello che hanno pagato (torte di cipolle marroni?), I successivi acquirenti (robot più lenti o umani più veloci) otterranno qualcosa di non spettacolare ma vale il prezzo di acquisto ( acquistato in conto consegna?) e gli ultimi acquirenti (quasi tutti gli umani) otterranno qualcosa che vale più del prezzo di acquisto (scoppiare champagne?). Quella TV a schermo piatto potrebbe essere nell'ultimo BOC acquistato.

Chiunque aspetta troppo a lungo si perderà, ma allo stesso tempo chiunque comprerà troppo in fretta verrà eliminato. Il trucco è aspettare un po 'di tempo ... ma non troppo. C'è un po 'di fortuna, che è come dovrebbe essere.

La soluzione a bassa tecnologia sarebbe quella di cambiare il nome del BOC in qualcosa che gli umani possano interpretare ma i robot non possono. Pelle di vino degli escrementi? Sacco contenente odore? Superficie topologicamente piatta adiacente a merci assortite? Non utilizzare mai lo stesso nome due volte, utilizzare immagini leggermente diverse e spiegare nella descrizione del prodotto cosa viene effettivamente venduto.

0
Mitsurati

Una soluzione piuttosto semplice è quella di tracciare la differenza di tempo tra il rendering dei moduli e ottenere la risposta: i robot di solito hanno tempi di risposta estremamente brevi di millisecondi, nessun utente potrebbe farlo; o tempi di risposta estremamente lunghi di diverse ore.

C'è uno snippet Django che lo fa, insieme a una descrizione più dettagliata:

Alternativa ai captcha (senza interazione umana)