Session Cookie Stealing Protection

14

Sto cercando come proteggere un sito Web dal furto del suo cookie di sessione. Questi sono i controlli che so sono ampiamente conosciuti / usati:

  • HTTPS ovunque
  • Utilizza solo una stringa casuale creata in modo sicuro per il valore del cookie
  • Contrassegna il cookie di sessione Sicuro e HttpSolo
  • Modifica il cookie di sessione all'accesso

Sto discutendo di un suggerimento trovato nel tracker di Tomcat . Per ogni sessione memorizza le seguenti informazioni aggiuntive:

  • ID sessione SSL
  • Agente utente HTTP
  • Indirizzo IP remoto

Ad ogni richiesta vorrei convalidare che due dei tre valori memorizzati corrispondono a ciò che viene catturato nella sessione. In questo modo uno dei tre potrebbe cambiare per vari motivi senza influenzare l'utente. Sarebbe altamente improbabile che un utente normale ne modificasse più di una per richiesta.

Questa sembra una ragionevole difesa aggiuntiva per il cookie di sessione?

    
posta chotchki 15.05.2013 - 19:00
fonte

2 risposte

14

Dal punto di vista dello sviluppatore del sito, dovresti utilizzare quanto segue:

  • Adotta SSL: usa SSL in tutto il sito.
  • Imposta il flag secure su tutti i cookie. Ciò garantirà che vengano inviati solo tramite una connessione SSL.
  • Attiva HSTS.

Questo garantirà che i cookie di sessione siano accessibili solo tramite SSL e ti proteggano dagli attacchi di intercettazioni e attacchi man-in-the-middle.

Cerca SSL su tutto il sito su questo sito per trovare molti riferimenti su come farlo.

Non mi preoccuperei di controllare l'HTTP User Agent o l'indirizzo IP remoto. Non aggiungono molta sicurezza e interromperanno l'uso legittimo in determinati scenari. Il controllo dell'ID della sessione SSL (binding della sessione SSL) andrebbe bene dal punto di vista della sicurezza, ma potrebbe essere un po 'difficile da configurare e non sarebbe una priorità per me: le altre difese vanno bene.

Altri consigli:

Se la tua preoccupazione è il furto di cookie tramite XSS, la migliore difesa è usare metodi standard per evitare i bug XSS nella tua applicazione web. Vedi OWASP per molte risorse eccellenti (ti consigliamo di utilizzare l'escaping dell'output dipendente dal contesto).

Hai menzionato "la fissazione della sessione" come tag, ma questa è una minaccia molto diversa. La difesa dalla fissazione della sessione consiste nell'utilizzare un framework non vulnerabile alla risoluzione della sessione. La maggior parte dei moderni framework di sviluppo di applicazioni web dovrebbe occuparsi di questo per te senza richiedere alcun lavoro aggiuntivo.

Segui le pratiche di sviluppo di applicazioni web sicure. OWASP ha molte risorse eccellenti su questo.

Leggi il consiglio di Rook attentamente e seguilo.

    
risposta data 14.06.2013 - 22:25
fonte
0

La verifica di implementazione 2/3 funzionerebbe correttamente. Non ho provato questo o so se è un metodo valido, ma potresti anche implementare una "chiave di cambiamento" di ordinamenti in cui la chiave di sessione cambia ad ogni richiesta, abbassando la finestra di attacco.

    
risposta data 15.05.2013 - 20:36
fonte

Leggi altre domande sui tag