Che cos’è un ID di sessione?

Immaginiamo di essere in un grande centro congressi che organizza vari eventi. Abbiamo deciso di partecipare a una conferenza specifica e andiamo a ritirare il nostro badge per poter entrare nella sala corrispondente. Veniamo così “contrassegnati” per l’ammissione e assegnati in modo chiaro all’evento selezionato. Il centro congressi è il server, il singolo evento è l’indirizzo web e il badge è il nostro ID di sessione (chiamato anche identificativo di sessione o session ID in inglese).

Con tali identificativi di sessione, il visitatore di un sito web viene contrassegnato in modo univoco durante la sua permanenza sul sito, ricevendo un badge elettronico da parte del server. Altri sinonimi di identificativo di sessione sono anche ID di sessione o numero di sessione. La nostra guida spiega nel dettaglio come si svolge questo tipo di sessione quando si visita un sito web e le modalità di utilizzo degli ID di sessione.

Dominio
Registra il tuo dominio
  • Certificato SSL Wildcard incluso
  • Registrazione di dominio sicura
  • Indirizzo e-mail professionale da 2 GB

Dove e per cosa viene utilizzato un ID di sessione?

L’ID di sessione è un aiuto tecnico per identificare chiaramente gli utenti di un sito web e per poter assegnare loro una sessione; inoltre consente l’accesso ai dati dell’ultima sessione dell’utente. Questi dati vengono memorizzati sul server del sito web in questione. L’ID è una stringa di numeri. Ad esempio, la seguente stringa di un ID di sessione a 32 caratteri è stata generata e prodotta con PHP:

<?php
session_start();
    echo "L’ID di sessione è:" . session_id();
    $sid=session_id(); //crea una variabile con l’ID di sessione
?>

Se disponete di uno spazio web con accesso FTP, potete testarlo facilmente con queste tre righe di codice. Ciò ha generato l’output “L’ID di sessione è: 84266fdbd31d4c2c6d0665f7e8380fa3” come esecuzione di prova per questa sessione speciale.

Questo valore viene inviato all’utente quando il contenuto viene recuperato sul server e assegna il contenuto associato all’ultima sessione del server. I dati personali dell’utente rimangono anonimi, viene solo stabilito che lo stesso utente sta accedendo a questo determinato sito web. Se non c’è l’ID, il server considererà la richiesta come nuova, emettendo un nuovo ID di sessione.

Perché tutto ciò? Questi identificatori di sessione hanno una funzione importante per l’e-commerce. L’ID di sessione viene utilizzato, ad esempio, per assegnare all’utente il contenuto di un carrello o gli articoli visualizzati di recente in un negozio online. Ciò rende la navigazione più facile per l’utente, migliorando la cosiddetta usabilità del sito web. I dati memorizzati temporaneamente nella cache dei siti web visitati possono essere utilizzati per identificare i contenuti visualizzati. Questo stesso processo svolge anche un’altra importante funzione: questa informazione, vale a dire l’identificativo di sessione, può essere utilizzata per mostrare pubblicità (banner, pop-up, link, ecc.) che potrebbero essere di particolare interesse per l’utente, portando quindi a un tasso di risposta più elevato.

Come funziona un ID di sessione?

Un ID di sessione viene generato dal server all’inizio di ogni sessione e trasmesso al browser su richiesta dell’utente e qui memorizzato. Tutti i dati associati alla sessione in questione vengono inoltre salvati dal server web in una directory appositamente creata sul disco rigido del server. Di solito si tratta di una directory temporanea di tipo “…/tmp”. Oltre all’ID di sessione, i dati qui memorizzati contengono anche altri contenuti, come un ID utente e, se richiesto sul sito web, il contenuto di un carrello pieno. Tale file avrà quindi un contenuto simile al seguente:

/tmp/sess_84266fdbd31d4c2c6d0665f7e8380fa3
UserID|i:1142;MyCart|a:2:{i:0;s:8: "Item_Nr01";i:1;s:8:"Item_Nr02";}

Nel paragrafo seguente spiegheremo le due tecniche principali utilizzate per trasmettere un ID di sessione.

Come arriva l’ID di sessione all’utente e viceversa?

Esistono due modi per trasmettere un ID di sessione.

Trasmettere l’ID di sessione tramite URI

Dopo aver aperto un sito web per la prima volta, vengono eseguite ulteriori richieste da parte di un utente facendo clic sui link o riempiendo moduli. Dopo che l’identificatore di sessione è stato assegnato, cambia di conseguenza anche l’URI (Uniform Ressource Identifier), in quanto l’ID di sessione viene aggiunto come variabile all’URI. Il collegamento sarà quindi simile a quello qui di seguito, con la variabile $sid definita in precedenza:

<a href="https://www.dominiodesiderato.it/cart.php?sid=$sid">www.dominiodesiderato.it </a>

crea il seguente link nel browser:

https://www.dominiodesiderato.it /cart.php?sid=84266fdbd31d4c2c6d0665f7e8380fa3

Un’opzione alternativa è impostare l’identificatore di sessione come percorso:

<a href="https://www.dominiodesiderato.it /$sid/cart.php">www.dominiodesiderato.it </a>

Questo dà il link modificato come segue nel browser:

https://www.dominiodesiderato.it/84266fdbd31d4c2c6d0665f7e8380fa3/cart.php

Il server è configurato in modo tale da inserire sempre l’ID di sessione come percorso nella corrispondente query dell’utente e si può quindi eseguire l’identificazione.

Lo stesso procedimento vale anche con i campi dei moduli, “comprimendo” l’ID di sessione che è stato generato in un campo nascosto:

<form method="post" action="/esegui_azione"></form>
	<input type="text" name="numero_cliente">
<input type="hidden" name="sessionId" value="$sid">
	< … >

L’ID di sessione viene quindi rinviato al server utilizzando il metodo POST predefinito. La sessione e l’utente attuale vengono identificati.

Trasmettere l’ID di sessione tramite header HTTP

In questo caso vengono utilizzati i cookie. Un cookie è (come da tempo spiegano tutti i siti web) un piccolo file di testo. È un’estensione dell’HyperText Transfer Protocol (HTTP). Questo file di testo viene salvato in locale dall’utente e contiene l’ID di sessione. Con una nuova richiesta al server, il contenuto di questo cookie di sessione viene trasmesso al server, che a sua volta ha anche memorizzato temporaneamente l’identificativo di sessione. Se il contenuto del cookie dell’utente e l’ID di sessione sul server corrispondono, la query viene eseguita.

N.B.

Secondo le linee guida del GDPR, nella maggior parte dei casi un cookie di sessione non è coinvolto nell’applicazione dell’opt-in. Non è quindi necessario richiedere di accettare attivamente questi cookie speciali. Ciò non significa che la loro presenza non debba essere menzionata al visitatore.

Ad esempio, è possibile riconoscere che vengono utilizzati questi file dal fatto che i dati di un modo, una volta inseriti, non debbano essere reinseriti nel rispettivo campo quando lo si riapre in un secondo momento. La risposta data in precedenza appare come suggerimento quando si digita la prima lettera.

Quanto sono sicuri gli ID di sessione?

In generale, gli ID di sessione non sono una garanzia di navigazione sicura su Internet. Chiunque abbia le necessarie conoscenze di programmazione può attingere ai contenuti di un sito senza essere visibile durante una sessione; si parla in questo caso di “session hijacking” (dirottamento di sessione).

Gli identificativi di sessione che arrivano all’utente tramite i cookie di sessione e qui memorizzati vengono automaticamente eliminati non appena si chiude completamente il browser. Chiudere semplicemente una scheda del browser aperta non è sufficiente. A differenza dei cookie che vengono memorizzati in modo permanente o per periodi più lunghi, i cookie di sessione non rappresentano un rischio maggiore per la sicurezza.

Hai trovato questo articolo utile?
Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.
Page top