Ho un endpoint API pubblicamente disponibile. Devo impedire a un semplice script $ .ajax di scaricare tutti i dati esposti in pochi secondi e di forzare almeno una pagina ad aggiornare ogni volta che una nuova richiesta vuole essere inviata. Anche se questo non lo proteggerebbe del tutto, contribuirebbe a mitigare gli attacchi mentre le limitazioni non tecniche ci consentono di proteggerlo in un modo migliore.
Il problema è che i token CSRF possono essere facilmente recuperati dalla pagina con javascript e il cookie CSRF viene inviato insieme alla richiesta Ajax. Sembra che una richiesta inviata da una console di sviluppatore del browser sia simile a quella legittima. Come posso differenziarli?
Come piccola nota, ho preso in considerazione l'utilizzo di un nonce nel cookie ma ciò significherebbe anche un aggiornamento della pagina per i client legittimi che hanno bisogno di interrogare i dati due volte o tre volte e ciò non è consentito.