2013-08-12 14 views
9

Sto provando a implementare i token antifora su richieste di ajax di un'applicazione angolare.Durata e utilizzo multiplo di un AntiForgeryToken?

C'è una durata allegata con il token antifreddo? Se avessi l'app aperta a lungo in un browser senza toccarla, dì per un mese. Le richieste ajax falliranno a causa di un token stantio?

Il token può essere riutilizzato per più chiamate? Posso mantenere un token da qualche parte nella pagina e recuperarlo per tutte le chiamate ajax?

+0

Una buona domanda, non so perché non ci sono ancora voti. –

risposta

0

Le richieste ajax falliranno a causa di un token stantio?

Il token può essere riutilizzato per più chiamate? No

Tuttavia, la domanda migliore da porsi è perché si utilizzano i token antiforgia con AJAX in primo luogo. Se stai usando AJAX, stai usando un'API, anche se non l'hai formalizzata come tale (solo una raccolta di azioni/controller che stai usando per AJAX/altre comunicazioni senza testa). I token di Antiforgery non funzionano bene con le API perché 1) le API tipicamente consentono l'accesso di terze parti a e 2) anche se non sono , esistono modi migliori per proteggerli.

Se si desidera garantire che solo il proprio sito possa accedere alla propria "API", quindi implementare l'autenticazione HTTP o qualche altro schema per autenticare le vostre richieste alla vostra "API". Questo è il modo in cui consenti sessioni di lunga durata che non falliranno.

1

Infatti le API dovrebbero essere consumate da terze parti, ma cosa riguarda le interfacce della pagina singola con AFT?

Sono preoccupato che richiedano ancora AFT per prevenire gli attacchi CSRF. Ed ecco un buon modo per usarli in Ajax requests.

Il token antiforgeria viene generato per sessione e rimane nei dati di sessione fino alla sua scadenza. Per la nuova sessione verrà generato un nuovo token. E sì, un singolo token può essere riutilizzato più volte all'interno della stessa sessione.

Controllare il collegamento che ho aggiunto, c'è un esempio di come può essere ottenuto il token per le richieste Ajax.

+0

Ho guardato quella pagina in precedenza e l'ho implementata in modo simile. Nel mio caso sto visualizzando il token nella "pagina principale" (che nel mio caso sarebbe la pagina principale dal punto di vista angolare). Sto riutilizzando lo stesso token più e più volte. Tuttavia, in rare occasioni c'è un errore che non è stato creato un token per questo utente. Immagino che accada quando si utilizza il pulsante Indietro e riutilizzando una pagina in cui è presente un antiforgerytoken per l'utente non autenticato. –

+0

Sto accedendo al antiforgerytoken usando jquery. Ho preso in considerazione un servizio web a cui è possibile accedere per recuperare un antiforgerytoken. Sembra indietro, ma d'altra parte è lo stesso con il recupero di una pagina, ma senza il resto della pagina. –

+0

Se ci sarebbe un metodo per recuperare il token, qual è lo scopo di quei token se può essere facilmente ottenuto tramite csrf. Prendi in considerazione il precaricamento di alcune pagine con token in background e il mantenimento del token da esso sulla tua pagina. –

Problemi correlati