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?