![]() |
Cosa sono questi strani dolci che un sito web vi ha sicuramente già proposto?
La maggiorparte delle volte, quando un server web propone un cookie, gli utenti ignorano il termine e cliccano su « OK » senza molte preoccupazioni. Un cookie è in relatà un file immagazzinato sul disco rigido dell'utente, che permette al server web di riconoscerlo da una pagina all'altra. I cookies sono soprattutto usati dai siti di commercio elettronico per conservare le preferenze dell'utente (ad esempio le opzioni che ha selezionato) per evitargli di doverle ridigitare. |
Il problema più grande dei cookies è di rivelare le informazioni che esso contiene. In effetti, quando un utente si connette ad un sito personalizzabile, questo gli pone delle domande per stilare il suo profilo per poi stoccare questi dati in un cookie. A seconda del sito, il modo in cui l'informazione è stoccata può essere nociva all'utente.
In effetti, un sito di vendita in linea può ad esempio raccogliere delle informazioni sulle preferenze degli utenti attraverso un questionario, per proporgli ulteriormente degli articoli che possono interessarlo.
Ad esempio, sapendo se l'utente è un uomo o una donna, un sito potrà indirizzarlo direttamente al settore appropriato per fargli risparmiare del tempo (e soprattutto per vendere meglio). Se invece l'utente ha indicato nel suo profilo che è un amante del tennis, il sito sarà in grado di proporgli una selezione personalizzata degli ultimi articoli del settore.
Un cookie è quindi un meccanismo previsto per creare un'associazione tra la sessione dell'utente (navigazione tra le pagine di uno stesso sito durante un periodo dato) e i dati che lo riguardano.
Idealmente, il cookie deve contenere una stringa aleatoria (identificativa della sessione) unica e difficilmente indovinabile, valida unicamente durante un intervallo di tempo dato. Solo il server deve poter essere capace di associare le preferenze degli utenti a questo identificativo. Quindi, dopo la scadenza del cookie, l'identificativo della sesssione sarà inutile e il cookie non conterrà nessuna informazione riguardo l'utente.
In nessun caso il cookie contenere direttamente le informazioni riguardanti l'utente e la sua durata di vita deve essere più simile possibile a quella corrispondente alla sessione dell'utente.
D'altra parte, i dati stoccati in un cookie sono inviati dal server, sulla base dei dati indicati dall'utente (ad eccezione dell'indirizzo IP e dell'identificazione del navigatore trasmesso automaticamente al server). Così, il cookie non può in nessun caso contenere delle informazioni sull'utente che egli non ha fornito o delle informazioni sul contenuto del computer, o in altri termini: il cookie non può raccogliere delle informazioni sul sistema dell'utente.
Quindi, rifiutate di dare delle informazioni personali ad un sito che non vi ispira fiducia dato che vi è nessuna ragione affinché raccolga delle informazioni che vi riguardano.
Un cookie non ha dunque niente di pericoloso in se stesso se è ben concepito e se l'utente non fornisce informazioni personali.
I cookies fanno parte delle specifiche del protocollo HTTP, cioè il protocollo che permette di surfare sulle pagine web. Il protocollo HTTP permette di scambiare dei messaggi tra il server e il client attraverso delle richieste e delle risposte HTTP.
Le richieste e le risposte HTTP contengono delle intestazioni che permettono di inviare delle informazioni particolari in modo reciproco. Una di queste intestazioni è riservata alla scrittura dei file sul disco rigido : i cookies.
L'intestazione HTTP riservata all'utilizzo dei cookies viene detta Set-Cookie, si tratta di una semplice linea di testo dalla forma :
Set-Cookie : NOME=VALORE; domain=NOME_DEL_DOMINIO; expires=DATASi tratta quindi di una stringa di caratteri che comincia con « Set-Cookie : » e prosegue da coppie chiave-valore, sotto forme CHIAVE=VALORE, separate da virgole.
Qui sotto una tabella delle principali chiavi (dette attributi) possibili per un cookie :
| Attributo | Valore | Sintassi | Descrizione |
|---|---|---|---|
| NOME_DEL_COOKIE | VALORE | Il nome e il valore non possono contenere i carattteri punto e virgola (;), virgola (,) e spazio (). Per mettere dei valori simili bisogna ricorrere alla <a href="/contents/internet/url.php3">codificazione URL<a/> | Questo attributo è obbligatorio (fra l'altro è il solo) |
| expires | DATA | Giorno, DD-Mese-YYYY HH:MM:SS GMT | L'attributo expires permette di definire la data in cui il cookie non deve più essere stoccato sul disco, e non deve più essere preso in considerazione dal server |
| dominio | nome_del_dominio | xxx.xxx.xxx | Il nome del dominio è generalmente lasciato vuoto visto che il nome del server è assegnato per default (cosa che solitamente si desidera). Quando è indicato, il nome del dominio deve contenere almeno due punti (ie www . kioskea . net). Un terminale che proviene da un dominio specifico non può specificafre che un solo nome di sub-dominio o il proprio nome di dominio |
| path | /cartella | /percorso/ | L'attributo <i>path (tradotto percorso) permette di definire una sotto cartella o un file del server sul quale il cookie è valido, per ridurre il suo campo di azione |
| secure | nessuno | L'attributo secure è opzionale. Permette di specificare che il cookie sarà inviato unicamente se la connessione è sicurizzata (via SSL o S-HTTP |
Quando un client si connette ad un sito (quindi al server), i cookies per il dominio e il percorso specifico sono automaticamente inviati nelle intestazioni della richiesta HTTP. L'intestazione si presenta allora come :
Cookie : NOME1=VALORE1; NOME2=VALORE2; ...
Uno script CGI (o altri come ASP o PHP) possono quindi verificare la presenza del cookie :
I cookies sono sottomessi ad un certo numero di obblighi :