Im­ma­gi­nia­mo di essere in un grande centro congressi che organizza vari eventi. Abbiamo deciso di par­te­ci­pa­re a una con­fe­ren­za specifica e andiamo a ritirare il nostro badge per poter entrare nella sala cor­ri­spon­den­te. Veniamo così “con­tras­se­gna­ti” per l’am­mis­sio­ne e assegnati in modo chiaro all’evento se­le­zio­na­to. Il centro congressi è il server, il singolo evento è l’indirizzo web e il badge è il nostro ID di sessione (chiamato anche iden­ti­fi­ca­ti­vo di sessione o session ID in inglese).

Con tali iden­ti­fi­ca­ti­vi di sessione, il vi­si­ta­to­re di un sito web viene con­tras­se­gna­to in modo univoco durante la sua per­ma­nen­za sul sito, ricevendo un badge elet­tro­ni­co da parte del server. Altri sinonimi di iden­ti­fi­ca­ti­vo 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.

Acquista e registra il tuo dominio con il provider n°1 in Europa
  • Domain Connect gratuito per una con­fi­gu­ra­zio­ne facile del DNS
  • Cer­ti­fi­ca­to SSL Wildcard gratuito
  • Pro­te­zio­ne privacy inclusa

Dove e per cosa viene uti­liz­za­to un ID di sessione?

L’ID di sessione è un aiuto tecnico per iden­ti­fi­ca­re chia­ra­men­te 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 me­mo­riz­za­ti 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 fa­cil­men­te con queste tre righe di codice. Ciò ha generato l’output “L’ID di sessione è: 84266fdbd31d4c2c6d0665f7e8380fa3” come ese­cu­zio­ne di prova per questa sessione speciale.

Questo valore viene inviato all’utente quando il contenuto viene re­cu­pe­ra­to 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 de­ter­mi­na­to sito web. Se non c’è l’ID, il server con­si­de­re­rà la richiesta come nuova, emettendo un nuovo ID di sessione.

Perché tutto ciò? Questi iden­ti­fi­ca­to­ri di sessione hanno una funzione im­por­tan­te per l’e-commerce. L’ID di sessione viene uti­liz­za­to, ad esempio, per assegnare all’utente il contenuto di un carrello o gli articoli vi­sua­liz­za­ti di recente in un negozio online. Ciò rende la na­vi­ga­zio­ne più facile per l’utente, mi­glio­ran­do la co­sid­det­ta usabilità del sito web. I dati me­mo­riz­za­ti tem­po­ra­nea­men­te nella cache dei siti web visitati possono essere uti­liz­za­ti per iden­ti­fi­ca­re i contenuti vi­sua­liz­za­ti. Questo stesso processo svolge anche un’altra im­por­tan­te funzione: questa in­for­ma­zio­ne, vale a dire l’iden­ti­fi­ca­ti­vo di sessione, può essere uti­liz­za­ta per mostrare pub­bli­ci­tà (banner, pop-up, link, ecc.) che po­treb­be­ro essere di par­ti­co­la­re 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 me­mo­riz­za­to. Tutti i dati associati alla sessione in questione vengono inoltre salvati dal server web in una directory ap­po­si­ta­men­te creata sul disco rigido del server. Di solito si tratta di una directory tem­po­ra­nea di tipo “…/tmp”. Oltre all’ID di sessione, i dati qui me­mo­riz­za­ti con­ten­go­no 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 spie­ghe­re­mo le due tecniche prin­ci­pa­li uti­liz­za­te per tra­smet­te­re un ID di sessione.

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

Esistono due modi per tra­smet­te­re un ID di sessione.

Tra­smet­te­re 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 riem­pien­do moduli. Dopo che l’iden­ti­fi­ca­to­re di sessione è stato assegnato, cambia di con­se­guen­za anche l’URI (Uniform Ressource Iden­ti­fier), in quanto l’ID di sessione viene aggiunto come variabile all’URI. Il col­le­ga­men­to sarà quindi simile a quello qui di seguito, con la variabile $sid definita in pre­ce­den­za:

<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 al­ter­na­ti­va è impostare l’iden­ti­fi­ca­to­re di sessione come percorso:

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

Questo dà il link mo­di­fi­ca­to come segue nel browser:

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

Il server è con­fi­gu­ra­to in modo tale da inserire sempre l’ID di sessione come percorso nella cor­ri­spon­den­te query dell’utente e si può quindi eseguire l’iden­ti­fi­ca­zio­ne.

Lo stesso pro­ce­di­men­to vale anche con i campi dei moduli, “com­pri­men­do” 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 uti­liz­zan­do il metodo POST pre­de­fi­ni­to. La sessione e l’utente attuale vengono iden­ti­fi­ca­ti.

Tra­smet­te­re l’ID di sessione tramite header HTTP

In questo caso vengono uti­liz­za­ti i cookie. Un cookie è (come da tempo spiegano tutti i siti web) un piccolo file di testo. È un’esten­sio­ne 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 me­mo­riz­za­to tem­po­ra­nea­men­te l’iden­ti­fi­ca­ti­vo di sessione. Se il contenuto del cookie dell’utente e l’ID di sessione sul server cor­ri­spon­do­no, la query viene eseguita.

N.B.
Secondo le linee guida del GDPR, nella maggior parte dei casi un cookie di sessione non è coinvolto nell’ap­pli­ca­zio­ne dell’opt-in. Non è quindi ne­ces­sa­rio ri­chie­de­re di accettare at­ti­va­men­te questi cookie speciali. Ciò non significa che la loro presenza non debba essere men­zio­na­ta al vi­si­ta­to­re.

Ad esempio, è possibile ri­co­no­sce­re che vengono uti­liz­za­ti questi file dal fatto che i dati di un modo, una volta inseriti, non debbano essere rein­se­ri­ti nel ri­spet­ti­vo campo quando lo si riapre in un secondo momento. La risposta data in pre­ce­den­za appare come sug­ge­ri­men­to quando si digita la prima lettera.

Quanto sono sicuri gli ID di sessione?

In generale, gli ID di sessione non sono una garanzia di na­vi­ga­zio­ne sicura su Internet. Chiunque abbia le ne­ces­sa­rie co­no­scen­ze di pro­gram­ma­zio­ne può attingere ai contenuti di un sito senza essere visibile durante una sessione; si parla in questo caso di “session hijacking” (di­rot­ta­men­to di sessione).

Gli iden­ti­fi­ca­ti­vi di sessione che arrivano all’utente tramite i cookie di sessione e qui me­mo­riz­za­ti vengono au­to­ma­ti­ca­men­te eliminati non appena si chiude com­ple­ta­men­te il browser. Chiudere sem­pli­ce­men­te una scheda del browser aperta non è suf­fi­cien­te. A dif­fe­ren­za dei cookie che vengono me­mo­riz­za­ti in modo per­ma­nen­te o per periodi più lunghi, i cookie di sessione non rap­pre­sen­ta­no un rischio maggiore per la sicurezza.

Vai al menu prin­ci­pa­le