Domanda:
Buone pratiche di sessione
James T
2010-11-12 04:28:28 UTC
view on stackexchange narkive permalink

Quali sono alcune buone pratiche per garantire che gli accessi, gli ID di sessione e il contenuto della sessione siano protetti per un sito web?

Cinque risposte:
#1
+21
VirtuosiMedia
2010-11-12 04:37:50 UTC
view on stackexchange narkive permalink
  • Usa un database per le sessioni.
  • Rigenera la sessione quando cambiano i permessi (ad esempio, quando un utente accede).
  • Rigenera la sessione ad ogni caricamento di pagina (opzionale ).
  • Non esporre l'ID di sessione nell'URL.
  • Non esporre dati sensibili alla sessione.
Utilizza la sessione solo tramite trasporto sicuro, altrimenti qualcuno potrebbe annusare il cookie e dirottare la sessione.
Alternativa alla nota Rigenera al caricamento della pagina sopra, se le azioni delle pagine precedenti (URL) sono invalidate, allora è una buona cosa per alcuni casi.
#2
+9
yfeldblum
2011-10-10 16:36:26 UTC
view on stackexchange narkive permalink

Oltre all'elenco di VirtuosiMedia:

  • Usa TLS (SSL) in tutto il sito. Utilizza l'intestazione HSTS.
  • Utilizza un cookie di sessione, invece di aggiungere un token di sessione a ogni link-href e form-action.
  • Utilizza secure e i flag httpOnly sul cookie.
  • Utilizza l'intestazione X-Frame-Options .
  • Conserva il contenuto della sessione minimo. Ad esempio, memorizza solo l'ID utente. Se è necessaria la memorizzazione nella cache, memorizza nella cache un livello di memorizzazione nella cache generale, non la sessione.
  • Firma crittograficamente il cookie di sessione con una chiave segreta nota solo al server. Includere una data e ora di scadenza nei dati firmati. Controlla la firma e la scadenza sul server ad ogni richiesta.
"_ Firma crittograficamente il cookie di sessione con una chiave segreta nota solo al server._" Se il cookie contiene solo l'id di sessione (la chiave nel database delle sessioni sul server), come può essere utile?
In primo luogo, l'id di sessione è generato da un PRNG crittograficamente forte e adeguatamente lungo da essere indovinabile e imperdonabile? In secondo luogo, è più importante per coloro che eseguono la sessione di dati nei cookie.
#3
+8
Gary
2010-11-12 04:45:18 UTC
view on stackexchange narkive permalink

Fai scadere la tua sessione dopo un ragionevole lasso di tempo ... Elimina la sessione da qualsiasi cosa tu stia utilizzando come repository in modo che non possa essere riutilizzata ...

#4
+6
Mohamed
2010-11-12 06:24:33 UTC
view on stackexchange narkive permalink

non salvare la password o altre informazioni sull'utente tranne l'ID utente nella sessione.

Quindi non usare l'autenticazione di WinForms? ;)
#5
+6
goodguys_activate
2011-10-04 22:07:06 UTC
view on stackexchange narkive permalink

Implementa DNSSec per proteggere la tua sessione HTTPS da attacchi tramite Wi-Fi o reti pubbliche tra cui cablata / commutata.

Utilizza solo HTTPS per i cookie che non richiedono l'accesso Javascript

Utilizza l'attributo Secure per tutti gli altri cookie

Non consentire 3 ° javascript di terze parti sul tuo sito

Simile a quanto sopra, non pubblicare annunci sul tuo sito



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 2.0 con cui è distribuito.
Loading...