Sto lavorando all'app mobile e alla sua API che utilizza un token privato per ogni utente per l'autenticazione.
Voglio assicurarmi che nessuno usi impropriamente l'API per eseguire la scansione dei miei dati o per spammare il mio database. Anche se non pubblicherò i loro post fino a quando non ottengono l'approvazione manuale, è ancora lo spam e un mal di testa per i ragazzi della qualità dei dati.
Sto usando RoR
e ho pensato di usare Redis
per memorizzare un contatore per ogni utente e se ha raggiunto un numero di visite specifico, posso limitare o bloccare le sue richieste, ma mi ci vorrà un'eternità per implementare il logica e mettere un peso per ogni richiesta e un lavoratore per resettare i contatori ogni paio d'ore o ogni giorno.
Naturalmente ho pensato di utilizzare strumenti già pronti come Fail 2 ban
o anche AWS WAF
perché sto eseguendo l'app su AWS EB
. Ma voglio usare user-id
come identificatore e non IP
perché forse qualcuno userà proxies
per eseguire la scansione o lo spam e penso che ci sia un approccio più intelligente invece di quello manuale.