CSRF con intestazioni Autorizzazione OAuth o Bearer

12

Sto progettando un'API RESTful che deve essere accessibile da un browser web. L'API è protetta dall'autenticazione di base.

Comprendo il concetto di CSRF e le mitigazioni proposte (ho trovato sia voce CSRF di Wikipedia che pagina OWASP CSRF buone spiegazioni). Generalmente introducono alcuni stati che il client deve conservare e presentare al server, quindi il server sa che le richieste provengono ancora dal client giusto.

Tuttavia, devo dire che l'implementazione del client diventa molto "sporca" a causa di ciò e mi chiedevo se potevano esserci soluzioni più pulite. In particolare, uno che non richiederebbe la gestione dello stato aggiuntivo.

Una soluzione che sto pensando, ma volevo controllare con te, è usare un% di intestazione Authorization che non sia Basic .

Secondo RFC 2617, sezione 2, riguardante lo schema di autenticazione Basic , il nome utente e la password possono essere memorizzati nella cache dal browser e inviati nuovamente senza chiedere all'utente in determinate condizioni, e questo è ciò che rende vulnerabile a CSRF :

A client SHOULD assume that all paths at or deeper than the depth of
the last symbolic element in the path field of the Request-URI also
are within the protection space specified by the Basic realm value of
the current challenge. A client MAY preemptively send the
corresponding Authorization header with requests for resources in
that space without receipt of another challenge from the server.

Ho anche verificato che Authorization: OAuth (utilizzato negli endpoint autenticati da OAuth 1.0) e Authorization: Bearer (utilizzato negli endpoint autenticati da OAuth 2.0) non vengono inviati automaticamente dal browser.

Quindi, la mia domanda è: considereresti che un endpoint protetto da intestazioni di autorizzazione OAuth / Bearer dovrebbe prendere precauzioni aggiuntive per prevenire CSRF?

    
posta gimix 13.03.2013 - 19:00
fonte

1 risposta

14

Se non utilizzi Basic o l'autenticazione dei cookie per la tua API, non devi preoccuparti di CSRF.

    
risposta data 13.03.2013 - 19:27
fonte

Leggi altre domande sui tag