Come creare un meccanismo anti-alluvione senza lasciare fuori la VPN?

2

Sto provando a proteggere le mie applicazioni da alcuni robot che non funzionano correttamente o stanno tentando di rimuovere i miei siti (molte richieste dagli stessi IP nei log).

Ogni volta che qualcuno richiede un'azione costosa o legata alla sicurezza, salvi il nome dell'azione, l'IP e la data. Quindi controllo alcuni limiti, ad esempio: l'azione login.fail ha un limite di 10 tentativi ogni 10 minuti e 20 all'ora. Se il limite viene superato, salverò il ban e non permetterò più azioni da quell'IP (ho semplificato la descrizione un po ').

Funziona bene, ma potrebbe lasciare utenti legittimi. Ad esempio, se molti utenti provengono dalla stessa VPN e condividono lo stesso IP (anche se i bot non provengono da quell'IP). E non voglio creare siti che ostacolino la privacy (vietando le VPN) solo per essere al sicuro dai bot.

Non riesco a controllare intestazioni come l'User-Agent perché possono essere falsificate.

Quindi cosa posso fare? C'è un modo per aggirare questo? Qualcos'altro che posso controllare a parte l'IP?

    
posta ChocoDeveloper 25.10.2013 - 18:41
fonte

2 risposte

4

Hai mai considerato di proteggere il tuo sito dietro un servizio come CloudFlare ? Fungono da proxy inverso per il tuo sito e spazzeranno il cattivo traffico ai loro nodi periferici sulla base di alcune euristiche molto avanzate. Anche i loro account gratuiti offrono un elevato livello di protezione perché è nel loro interesse eliminare il traffico dannoso in modo che non passi attraverso la loro rete. Non solo, ma hanno molte funzionalità avanzate come l'auto-minification di HTML / JS / CSS, CDN, analisi e altro ancora. Ho scritto un breve blog che li copre dopo che ho iniziato ad usarli qui .

    
risposta data 25.10.2013 - 20:06
fonte
2

Bene, se puoi (presumo come hai citato login.fail) dovresti incrociare le funzioni con usernames / logins in modo che ogni utente possa eseguire le tue funzioni osservate X volte in una data finestra di tempo.

Oltre a questo non c'è davvero nulla che tu possa fare per proteggere la tua applicazione in quanto la privacy può essere un mezzo efficace per rompere la sicurezza.
(Perché se posso essere completamente indistinguibile da altre persone perché non dovrei andare rapinare le banche e fare in modo che le forze dell'ordine arrestino qualcun altro?)

    
risposta data 25.10.2013 - 19:03
fonte

Leggi altre domande sui tag