Cookie + Protezione CSRF + AJAX

0

Nella mia app (incorporata in Codeigniter), gli utenti possono inviare aggiornamenti di stato. Durante l'invio di moduli, Codeigniter fornisce automaticamente un cookie nascosto. Posso convalidare quel cookie tramite AJAX quando l'utente invia l'aggiornamento, quindi la protezione CSRF funziona alla grande.

Il problema si presenta quando sto usando AJAX per inviare / caricare dati senza un modulo (come eliminare un aggiornamento di stato). In questi casi, poiché non esiste un modulo, non esiste un cookie generato automaticamente. Ho capito che posso usare il cookie che crea l'aggiornamento di stato per eliminarlo (e ho limitato la funzione di eliminazione al creatore di stato).

Ma l'utilizzo del cookie per la creazione dello stato per eliminare l'aggiornamento dello stato viola un principio di sicurezza? Il cookie deve scadere (o essere diverso dal cookie di creazione?), E in tal caso, come posso generare un altro cookie che verrà collegato all'aggiornamento di stato corretto?

    
posta chowwy 11.01.2013 - 15:01
fonte

1 risposta

3

Penso che intendessi token, non biscotti. Per quanto ne so, il meccanismo antiCSRF CodeIgniter inserisce segnalini casuali unici in ogni forma. Questi non hanno nulla a che fare con i cookie HTTP, che come best practice non dovrebbero essere accessibili dal codice JavaScript.

Per quanto riguarda la tua domanda attuale, è stata discussa in altri thread se l'utilizzo di un token CSRF anti per sessione è una cosa negativa ( esempio ). Il tuo caso è tra l'utilizzo di un token per modulo e l'utilizzo di un token per sessione, quindi finché usi SSL devi essere ok.

    
risposta data 11.01.2013 - 15:19
fonte

Leggi altre domande sui tag