API che non consente di invalidare la sessione sul lato server - come renderla più sicura?

5

Sto scrivendo un'app intorno a un'API REST che non consente al server di invalidare una sessione, ovvero non esiste un endpoint come logout che renderà invalido il cookie che la mia app utilizza da ora in poi.

Quindi vedo che se un hacker intercetta quel cookie, quindi un utente si disconnette (il che significa per me - rimuove il cookie) e quindi l' hacker è in grado di effettuare chiamate all'API nonostante l'utente non sia più possibile.

Posso fare qualcos'altro oltre a rimuovere il cookie?

Cookie ha un timeout - 24 ore. Questo timeout viene rinnovato ogni chiamata all'API.

    
posta Marian Paździoch 17.07.2015 - 15:56
fonte

1 risposta

3

In realtà non è così raro un setup. In genere, quando un'applicazione utilizza i cookie stateless, non c'è modo di escludere il timeout per invalidare la sessione.

Il vantaggio di questa appraoch è che il server non ha bisogno di mantenere un elenco di cookie validi, il che è utile per ridimensionare, il lato negativo è (come hai notato) se l'applicazione ha un lungo timeout ci sono dei rischi relativo a sessioni rubate.

Che cosa potresti fare assumendo che il flusso sia

cliente < - > la tua app < - > API

è se dai ai tuoi clienti un token creato dall'applicazione e poi mantieni una tabella di mappatura in modo da indirizzare efficacemente tutto il traffico tra il cliente e l'API, potresti quindi implementare una funzione di disconnessione per la tua app che ha rimosso il token che custoemr ha il logout.

Il token API sarebbe comunque valido naturalmente, ma partendo dal presupposto che è possibile proteggere il collegamento tra la tua app e l'API, il rischio principale sarebbe nel compromesso della tua app, che probabilmente ha conseguenze più gravi che i singoli clienti perdono il controllo dei loro token di sessione.

    
risposta data 17.07.2015 - 19:57
fonte

Leggi altre domande sui tag