Previene l'attacco CSRF usando espressioni regolari, archiviazione di sessione e token di autenticazione?

4

Accesso utente al servizio Web API utilizzando il nome utente e la password.
Token di autorizzazione della risposta del servizio API Web al browser client.

Il browser client salva il token di autenticazione nella memoria di sessione utilizzando JavaScript.
La pagina del client utilizza l'espressione regolare per convalidare gli input di ogni utente.
Il client invia richieste Ajax associate al token di autenticazione al servizio API Web.

Il servizio API Web utilizza espressioni regolari per convalidare i dati provenienti da ogni richiesta Ajax.

Usando questo approccio ho ancora bisogno di token anti-contraffazione per mantenere la pagina del cliente nascosta?

    
posta Frank Myat Thu 19.12.2015 - 04:47
fonte

2 risposte

2

La memorizzazione della sessione del browser non viene automaticamente inviata dal browser quando viene avviata una richiesta di dominio incrociato. Pertanto, mentre si aggiunge manualmente il token di autenticazione, questo agisce come una difesa CSRF a sé stante e non necessita di ulteriore protezione.

Suppongo che ci sia una relazione uno a uno tra il sito Web e l'API Web qui. In caso contrario, esiste la possibilità che un utente della tua API stia effettuando richieste tra domini a un altro consumatore. Per contrastare questo, è necessario legare la sessione utente all'identificatore del sito Web che ha effettuato la richiesta di autenticazione originale e controllarlo per ogni ulteriore richiesta di mitigazione di CSRF.

    
risposta data 19.12.2015 - 10:40
fonte
5

Sì, hai ancora bisogno di un tipo di implementazione anti-CSRF perché non sei ancora in grado di verificare l'origine della richiesta.

Per rendere un attacco CSRF un po 'più chiaro, dai un'occhiata a questo diagramma:

Un'implementazionedianti-CSRF,usandoPHP,puòesseretrovata qui .

    
risposta data 19.12.2015 - 06:42
fonte

Leggi altre domande sui tag