È possibile utilizzare il valore del referrer http per bloccare i bot spam?

1

Ho un sito di registrazione pubblico e quando fanno clic su Invia, un messaggio di testo di verifica viene inviato al numero di telefono specificato nella registrazione chiamando una pagina di aspx tramite ajax. Non voglio che i bot spam inviino messaggi di testo per i quali pago.

Ho notato che la funzione noCaptcha di google con la semplice casella di controllo ha un sacco di grandi cose. Ma la caratteristica più importante è che accetta solo richieste dagli indirizzi IP o dal nome di dominio che hai designato. Buono. E per farlo, deve controllare il referente http nella richiesta. Quindi cosa succede se il browser che lo invia o il firewall che lo circonda cancella il referer http? Quindi immagino che captcha non funzioni in quella situazione e restituisca un indirizzo ip errato o un errore nel nome del dominio, o qualunque cosa dia fuori e devo gestirlo.

Quindi la mia domanda è perché noCaptcha ha anche bisogno di essere usato? Se posso controllare l'indirizzo IP o il nome di dominio del referer nella pagina che riceve la richiesta di inviare il messaggio di testo e rifiutare (o fare qualsiasi cosa) se il referrer è vuoto o no il mio indirizzo ip o il nome di dominio (perché uno script spam essere in esecuzione sul server dello spammer o indirizzo IP o nome di dominio), quindi non sto facendo la stessa cosa di noCaptcha e non ne ho bisogno?

Sembra che se lo script di uno spammer è in esecuzione su un altro indirizzo IP o nome di dominio che richiama js ajax che trova sulla mia pagina tramite scraping, l'indirizzo IP o il nome di dominio del referrer sarà vuoto, o l'indirizzo dello spammer reale, come sembra che il referrer http non possa essere falsificato, escluso o modificato tramite proxy, nessuno dei quali sarà il mio indirizzo IP o dominio.

In ogni caso, non è altrettanto efficace e arriva alla conclusione? Se noCaptcha non può accettare richieste senza un referente http corretto e corretto, allora il mio assegno non è inferiore alla loro? Entrambe le soluzioni non funzioneranno se esiste un firewall che impedisce l'indicazione del referrer HTTP o uno script bot antispam che non lo specifica. Quindi, cosa sto comprando (anche se è gratuito) da noCaptcha se ha gli stessi limiti dell'idea che sto proponendo dove viene effettuato il controllo sulla pagina richiesta che invierà il messaggio?

Sto cercando qualcuno che mi spieghi perché il mio approccio alla sostituzione captcha non funzionerà in realtà

    
posta Bobh 19.07.2017 - 00:34
fonte

2 risposte

0

Innanzitutto, la tua comprensione del campo dei referenti è errata. Google utilizza quel campo per garantire che un altro sito non stia utilizzando la tua chiave API. Se il campo referrer viene rimosso, l'utente non sarà in grado di completare il captcha, che a sua volta significa che non possono inviare il modulo, il che significa che nessun messaggio di testo inviato.

Qualsiasi cosa e tutto può essere falsificato, non solo nel browser. Se dovessi attaccare il tuo sito, non scriverei uno script AJAX ed eseguirlo negli strumenti di sviluppo. Userei una piattaforma come NodeJS per scrivere il bot, dandomi un accesso ottimizzato sulla richiesta che faccio. Diamine, posso persino telnet al tuo server e digitare manualmente un referente falso. Un utente malintenzionato potrebbe capire che tutto ciò che stai cercando è una specifica voce di referrer http, quindi scrivere uno script per inviare spam alla tua pagina di registrazione e svuotare il denaro del tuo testo. Potrebbero anche essere in combutta con un provider di testo premium e ottenere denaro da te.

Googles noCaptcha è molto più complicato di quanto pensi. Il motivo per cui controlli solo la casella è perché Google ha già stabilito che sei una persona reale. Utilizzano un'euristica molto avanzata per questo e tengono conto di molte variabili, più di ciò che fa la tua implementazione. Il loro motore del rischio tiene traccia di come muovi il mouse verso di esso, quanti altri captcha hai completato, stai guardando costantemente a un singolo campo captcha. Se dovessi passare alla modalità di navigazione in incognito o privata, molto probabilmente ti verrà mostrata una sfida prima di poter selezionare la casella.

In breve, stai dicendo "non ho bisogno del captcha, ho piena fiducia che la persona che mi sta parlando non stia mentendo su da dove viene"

    
risposta data 21.07.2017 - 00:43
fonte
2

Can http referrer value be used to stop spam bots?

No, perché il referrer è solo un'intestazione ed è facilmente falsificato da un bot.

I noticed that google's noCaptcha feature with the simple check box has a lot of great things.

In realtà non è una casella di controllo, è un DIV con alcune sovrapposizioni.

But the most important feature it has is that it only accepts requests from ip addresses or domain name you designate.

Non sei sicuro di come hai "notato" questo. Lo hai trovato in un documento? Perché non è niente di straordinario; puoi facilmente impostare una lista bianca IP di tua proprietà solo IIS-- no noCaptcha richiesto.

why does noCaptcha even need to be used?

È un motore di rischio sofisticato con passaggi di escalation condizionale. Dettagli . Dubito che potresti ricrearlo efficacemente da solo.

    
risposta data 19.07.2017 - 03:01
fonte

Leggi altre domande sui tag