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"
.