È brutto se la chiave di sessione viene passata in formato testo nell'URL?

2

In una classe ci è stato detto che è pericoloso inserire la chiave di sessione nell'URL perché potrebbe essere memorizzata nella cache, dal browser o da un proxy, ecc. È corretto? Anche se è stato memorizzato nella cache, la chiave di sessione non dovrebbe essere rigenerata ogni sessione? Immagino che potrebbe essere un problema con i siti che non ti disconnettono dopo aver chiuso il browser. Ho capito il problema correttamente?

Qual è la differenza tra una chiave di sessione e il valore di sessione? Uso la chiave di sessione per fare riferimento alla stringa memorizzata su un computer locale che si associa alla sessione di cui il server è a conoscenza per un utente che ha effettuato l'accesso.

    
posta Celeritas 03.04.2016 - 06:31
fonte

2 risposte

1

Also what's the difference between a session key and session value?

Ci sono fondamentalmente due modi per conservare le informazioni su una sessione:

  • Inserire le informazioni nel database e associarle a una chiave non selezionabile (cioè casuale). Utilizzare questa chiave all'interno di alcuni cookie o simili quando si comunica con il client. Cerca le informazioni basate su questa chiave ogni volta che ne hai bisogno. In questo caso hai una chiave di sessione (cookie) e il valore di sessione (informazioni nel database).
  • Codifica tutte le informazioni in una stringa e proteggi questo token di sessione contro la manipolazione e l'ipotesi. In questo caso non hai alcun valore nel database ma puoi estrarre tutte le informazioni dal token.

.. dangerous to put the session key in the URL because it could be cached, either by the browser or a proxy etc. Is this correct?

Poiché la chiave di sessione viene spesso utilizzata per identificare un utente che ha effettuato l'accesso, deve essere considerata come una password temporanea, vale a dire che deve essere considerata come segreta. Ciò significa che deve essere protetto con HTTPS contro lo sniffing. Ciò significa anche che non deve essere registrato perché qualcuno potrebbe ottenere l'accesso ai file di log anche senza hacking che di solito contiene l'URL completo. E non dovrebbe essere inoltrato a terzi, cioè non automaticamente con l'intestazione HTTP Referer né manualmente dall'utente quando condivide l'URL corrente.

    
risposta data 03.04.2016 - 09:45
fonte
0

Rispondi alla domanda 2:

Prima chiarisci la terminologia.

ID sessione vengono spesso utilizzati per identificare un utente che ha effettuato l'accesso a un sito Web, possono essere utilizzati da un utente malintenzionato per dirottare la sessione e ottenere i privilegi potenziali. Un ID di sessione è spesso una lunga stringa generata a caso per ridurre la probabilità di ottenere uno valido mediante una ricerca di forza bruta.

Esempio di ID di sessione in GET: SESSIONID=AIsdlasdklMVgyfrfksoskeikskZPF63erf

Sessione [Chiave, Valore] : l'utente viene in genere identificato dal server utilizzando l'ID di sessione inviato tramite cookie o tramite i parametri GET / POST. Ad esempio, prendiamo un caso in cui i dati di sessione sul server sono memorizzati in file come sess_AIsdlasdklMVgyfrfksoskeikskZPF63erf.session . Questo file contiene i dati memorizzati nelle coppie [Chiave, Valore] per quel sessionid.

E sul lato server la convalida della pagina di benvenuto potrebbe essere come sotto

session_id( '$_GET['SESSIONID'] );  //Sets session id to the value received via GET parameter i..e session_id('AIsdlasdklMVgyfrfksoskeikskZPF63erf')
$username=$_SESSION['username'] //sets $username to Alice
echo "Welcome".$username;   //Prints "Welcome Alice"

Qui username è una chiave e Alice è il valore corrispondente per quella chiave nella variabile di sessione.

Rispondi alla domanda 1:

Sì, è pericoloso se l'ID di sessione è in URL. Inoltre, è simile avere il tuo nome utente o password in URL tramite GET.

Anche se la sessione è valida solo per un breve periodo di tempo (dal login alla disconnessione / scadenza della sessione), può essere ignorata se l'attacker può ottenere il sessionid mentre è valido.

Una volta ottenuto l'id della sessione, può inviare le richieste in modo spoofato per conto degli utenti.

Nell'esempio precedente se l'utente malintenzionato ottiene l'ID di sessione di Alice e invierà le richieste usando anche lui riceverà il messaggio "Welcome Alice" .

    
risposta data 03.04.2016 - 10:34
fonte

Leggi altre domande sui tag