Sto costruendo l'API per un plug-in SPA e Chrome utilizzando Rails, e sono propenso a utilizzare i cookie Secure HTTPOnly per l'autenticazione perché:
- Questa è la soluzione predefinita per le librerie di autenticazione Rails standard come Devise e Sorcery.
- Rails ha crittografato le sessioni lato client, il che significa nessun requisito di archiviazione lato server o ricerca DB (sì, so che avrò ancora bisogno di un qualche tipo di tracciamento e ricerca sul lato server se voglio implementare l'invalidazione della sessione corretta).
- È trasparente per le librerie client basate sul Web.
- I cookie sono in qualche modo rinforzati rispetto all'archiviazione locale e lo spazio dei problemi è ben compreso e compreso.
Quando attivi la modalità API di Rails disattiva sia i cookie che la protezione CSRF, quindi ho riabilitato i cookie, ma la protezione CSRF non è così facile da riattivare perché presuppone che un modulo sia reso per primo (cioè non una richiesta POST in arrivo a freddo) e probabilmente richiederà un po 'di giocherellare per configurare.
Se i cookie sono disabilitati, capisco che CSRF è un non-problema, tuttavia, per quanto posso dire, non c'è modo per un sito malevolo di falsificare una richiesta per tipo application/json
senza usare XHR, che non sarebbe consentito senza esplicita autorizzazione CORS.
È un modello di sicurezza del suono per autenticare un'API JSON con i cookie ma nessun token CSRF che presuppone una corretta convalida del tipo di contenuto?