Metodi per prevenire lo SPAM con un'API - Modulo di contatto del sito Web di AngularJS

1

Sto esplorando AngularJS e ho trovato una domanda interessante. Se sviluppo un'API per alimentare il mio sito Web AngularJS, includerà elementi pubblici come un modulo di contatto. Supponiamo che esista un metodo API / api / contact e che una richiesta POST crei una nuova voce del modulo di contatto.

Come possiamo impedire a uno spammer di utilizzare uno script automatizzato per creare milioni di voci? Un token API non funziona davvero qui in quanto non è necessario identificare l'utente in questa fase.

Alcune idee che abbiamo considerato:

  1. Limita il numero di crea per indirizzo IP
  2. Stretta di mano con il server - ma nulla da fermare per lo spammer che replica questo.

Presumo che questo sia un problema che è comunemente risolto - qualcuno può indicarmi la direzione di (o condividere) delle risorse sull'argomento?

    
posta LiamB 17.09.2015 - 13:38
fonte

1 risposta

1

Suppongo che la soluzione comune sia un capatcha.

Nel tuo caso sembra che tu abbia una strana serie di restrizioni

  • fornisci un'API per l'uso presumibilmente automatico. quindi non vuoi forza l'interazione umana
  • desideri limitare ogni client a un limite di velocità
  • non vuoi che i client debbano registrarsi / auth

Il mio suggerimento è che costringi il client a riconoscere la risposta con un calcolo lento per generare una risposta prima di elaborare la richiesta.

Ciò consentirà di valutare il limite dei client ritardando la richiesta ack e impedendo più richieste simultanee dallo stesso client, forzando la risposta ack computazionalmente dura. forse bcrypt o qualche altro hash lento? (mio un bitcoin!?)

Tuttavia, sarebbe più usuale implementare una procedura di registrazione / autenticazione che è possibile utilizzare per identificare i singoli clienti

    
risposta data 18.09.2015 - 23:29
fonte

Leggi altre domande sui tag