Come posso evitare richieste dalla console del browser mentre utilizzo ancora ajax? [duplicare]

0

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.

    
posta patricio 20.10.2017 - 22:48
fonte

1 risposta

3

Non puoi.

Qualsiasi utente legittimamente autenticato può assolutamente manipolare qualsiasi richiesta http effettuata sulla tua API. Usando un proxy come Fiddler o Burp o solo la console del browser, possono regolare le intestazioni, copiare i cookie praticamente tutto.

Se devi limitare un limite qualcosa devi mantenere una sorta di stato sul tuo server. Un token per sessione nel cookie auth ti consentirà di farlo, ogni richiesta con un determinato cookie verrà registrata e le richieste potranno essere negate se troppe richieste vengono fatte entro un certo limite

    
risposta data 20.10.2017 - 23:07
fonte

Leggi altre domande sui tag