Cookie
Un cookie HTTP sau un modul cookie este un text special, deseori codificat, trimis de un server unui navigator web și apoi trimis înapoi (nemodificat) de către navigator, de fiecare dată când accesează acel server. Cookie-urile sunt folosite pentru autentificare precum și pentru urmărirea comportamentului utilizatorilor; aplicații tipice sunt reținerea preferințelor utilizatorilor și implementarea sistemului de „coș de cumpărături”. Termenul „cookie” este un cuvânt englez (biscuit, pronunție: /ˈkuˌki/). În informatică el este derivat din termenul „magic cookie”, un concept des utilizat în IT. În general cuvântul „cookie” cu acest sens este folosit și în alte limbi; doar în terminologia tehnică francofonă s-a încercat traducerea lui prin termenul témoin („martor”). Cookie-urile au creat îngrijorare din cauză că ele permit strângerea de informații despre comportamentul utilizatorilor (în principiu, ce anume pagini web vizitează și când). Ca urmare, folosirea lor (și a informațiilor culese) sunt supuse în unele țări unor restricții legale, printre care Statele Unite ale Americii și țările UE. Tehnicile de tip „cookie” au fost de asemenea criticate pentru faptul că identificarea utilizatorilor nu e întotdeauna precisă, ca și pentru faptul că prin intermediul lor se pot executa atacuri informatice. Există și o serie de păreri greșite despre cookie-uri, cele mai multe bazate pe impresia (greșită) că ele ar conține întotdeauna cod executabil; în realitate ele sunt doar texte, și nu pot să execute nicio operație. Ele nu sunt nici spyware și nici viruși informatici, deși anumite programe antivirus și anti-spyware le pot detecta. Cele mai multe navigatoare moderne permit utilizatorului să decidă dacă acceptă sau nu cookie-uri. Siturilor care le refuză le vor lipsi însă anumite facilități - de exemplu, într-un magazin virtual nu se va mai putea folosi coșul de cumpărături, dacă acesta a fost implementat cu ajutorul cookie-urilor. ScopulCookie-urile sunt folosite de serverele web pentru a putea diferenția utilizatorii și pentru a putea reacționa în funcție de acțiunile acestora în cadrul unei sesiuni formate din mai multe tranzacții separate. Ele au fost inventate pentru a se putea implementa un coș de cumpărături virtual: de obicei, utilizatorul mai întâi se autentifică (login), apoi navighează pe site, adaugă sau elimină în voie obiecte din coș, apoi afișează conținutul coșului, cere calcularea prețului final, se hotărăște să comande (ori totuși renunță), iar la sfârșit închide sesiunea (logout). Autentificarea utilizatorilor față de server este o altă aplicație a cookie-urilor; cu ajutorul acestora serverul reține faptul că utilizatorul s-a autentificat, și îi va permite acțiuni specifice celor autentificați. Unele site-uri folosesc cookie-urile și pentru a permite utilizatorilor să modifice felul în care afișează paginile de web, în funcție de preferințele personale, care sunt reținute și între sesiuni. Se pot modifica și reține în acest fel atât aspecte legate de funcționalitatea cât și de afișarea grafică a paginilor. De exemplu, Wikipedia permite utilizatorilor înregistrați să modifice aspectul paginilor, iar în Google, chiar și utilizatorii neînregistrați pot de exemplu alege câte rezultate să fie afișate într-o pagină. Cookie-urile se folosesc și pentru a urmări activitatea unui utilizator pe un site, sau chiar pe mai multe site-uri, în cazul cookie-urilor „third party” sau a așa-numiților „web bugs”. Urmărirea în cadrul unui site este făcută în scopul obținerii unor statistici de folosire. În special companiile de publicitate urmăresc activitatea utilizatorilor în cadrul mai multor situri pentru a afla mai exact interesele lor, putând astfel să decidă care anume reclame să trimită la un anumit moment unui anumit utilizator. RealizareaCookie-urile de obicei conțin date fără semnificație pentru utilizator sau pentru navigatorul său, dar care pot fi interpretate de server. Navigatorul le primește și le returnează serverului nemodificate, introducând astfel o „amintire” a evenimentelor trecute în cererea HTTP, care în sine este atemporală (altfel spus, fiecare cerere este în principiu un eveniment izolat, fără a avea vreo legătură cu alte cereri HTTP trecute sau viitoare către același server). Returnând însă un cookie unui server, acesta poate lega cererea actuală de cereri precedente (în care același server a trimis cookie-ul), în acest fel luând naștere o așa numită sesiune. În afară de servere, cookie-urile mai pot fi create și de aplicații web care rulează pe server, comunică cu clienții prin HTTP, și sunt scrise în limbaje de programare cum ar fi Java și C# sau în scripturi ce rulează pe server. Descrierea detaliată a mecanismului[1][2] sugerează ca navigatoarele să poată reține cel puțin 300 de cookie-uri de câte 4 kb, și cel puțin 20 pentru fiecare server sau domeniu de Internet. La crearea cookie-ului se poate specifica și data de ștergere; în caz contrar, acesta va fi șters la închiderea navigatorului. Un magazin virtual poate dori să se rețină conținutul coșului de cumpărături între sesiuni, astfel încât la următoarea vizită utilizatorul să nu trebuiască să caute din nou toate produsele. În acest caz, serverul magazinului va crea un cookie cu un termen de ștergere ceva mai lung. Doar cookie-urile care au un termen de ștergere lung, specificat explicit, vor „supraviețui” între sesiuni, în care caz ele pot fi numite „persistente”. NeadevăruriDe la apariția cookie-urilor pe Internet s-au răspândit și mai multe păreri greșite despre ele.[3][4] În 2005, Jupiter Research a publicat rezultatele unui sondaj,[5] conform căruia o bună parte din cei chestionați credeau că:
De fapt cookie-urile conțin doar date, nu și cod (instrucțiuni executabile): ele nu pot să șteargă sau să citească nimic de pe PC-ul utilizatorului.[6] Totuși, ele permit detectarea paginilor vizitate de un utilizator pe unul sau mai multe situri. Aceste informații pot fi colectate într-un profil al utilizatorului. Acesta este ce-i drept anonim (nu conține informații personale cum ar fi nume sau adresă, cu excepția cazului în care utilizatorul și-a indicat el însuși datele personale), dar conține totuși o adresă IP. Chiar dacă sunt în teorie anonime, datele colectate în acest fel au dat naștere unor îngrijorări cu privire la cât de bine se asigură anonimitatea utilizatorului atunci când navighează pe Internet. În plus, conform aceluiași sondaj, destul de mulți intervievați nu știau cum să șteargă cookie-urile reținute de navigatoarele lor. Configurarea navigatoruluiCele mai multe navigatoare moderne suportă cookie-uri; ele permit însă utilizatorului să decidă dacă va folosi sau nu cookie-uri. Variantele cele mai folosite sunt:[7] (1) nu sunt folosite cookie-uri, (2) navigatorul cere permisiunea utilizatorului la fiecare cookie, sau (3) toate cookie-urile sunt acceptate. ![]() Navigatorul poate permite specificarea mai detaliată a cookie-urilor care să fie acceptate. De obicei utilizatorul are la dispoziție următoarele opțiuni: respingerea cookie-urilor pentru anumite domenii de internet; respingerea cookie-urilor third party (explicate mai jos); acceptarea cookie-urilor dar ștergerea lor la închiderea navigatorului; permisiunea ca un server să creeze cookie-uri pentru un alt domeniu. Cele mai multe navigatoare care suportă Javascript dau posibilitatea afișării cookie-urilor active pentru o anumită pagină, scriind Standardul P3P dă posibilitatea serverelor să declare ce fel de informații colectează și în ce scop, incluzând informațiile colectate cu ajutorul cookie-urilor. Astfel, un navigator poate să decidă dacă acceptă sau nu cookie-urile, sau poate afișa utilizatorului intențiile declarate de server, iar acesta va decide acceptarea sau respingerea cookie-urilor. Anonimitatea și cookie-urile de „terță parte”Cookie-urile au implicații destul de importante în ceea ce privește anonimitatea și securitatea informațiilor de natură personală ale celor care accesează pagini de web. Deși cookie-urile sunt trimise doar serverului care le-a creat sau unuia care este în același domeniu de Internet, o pagină poate conține imagini (sau alte elemente) găzduite pe mai multe servere din domenii diferite. Cookie-urile create de aceste servere secundare (față de serverul pe care este găzduită pagina propriu-zisă) se numesc „de terță parte”. Companiile publicitare folosesc astfel de cookie-uri pentru a urmări utilizatorii care accesează paginile în care aceasta are imagini sau așa numite „Web-bugs” (care sunt imagini cu dimensiunea de un singur pixel, în mod normal invizibile — transparente, al căror singur rol constă în a declanșa un transfer de cookie-uri). În acest fel compania cunoaște comportamentul utilizatorilor și poate plasa reclame pertinente (apropiate de preocupările și interesele utilizatorului) în anumite pagini. Posibilitatea generării unei aproximări a comportamentului utilizatorilor a fost considerată de unii drept o amenințare a anonimității, mai ales atunci când aceasta se face prin urmărirea acțiunilor pe mai multe domenii de Internet, folosind cookie-uri de „terță parte”. Din această cauză, folosirea cookie-urilor este reglementată prin lege în unele țări. Guvernul Statelor Unite ale Americii a elaborat un set strict de reguli în privința cookie-urilor în anul 2000, după ce a ieșit la iveală faptul că Direcția pentru Controlul Drogurilor a Casei Albe folosea cookie-uri pentru a vedea dacă cei care îi accesau site-ul accesau după aceea pagini de web despre folosirea ori producerea drogurilor. În 2002, Daniel Brandt, militant pentru securitatea datelor personale pe web, a descoperit că și pagina de web a CIA lăsa pe hard-disk-urile utilizatorilor cookie-uri persistente (cu data de expirare 2010). După ce a fost anunțată că își încalcă propriile reguli, CIA a răspuns că trimiterea cookie-urilor a fost accidentală, că ele nu au fost folosite efectiv pentru a urmări utilizatorii și și-a modificat pagina astfel încât să nu mai folosească cookie-uri.[8] Pe 25 decembrie 2005, Brandt a descoperit că și NSA lăsa două cookie-uri persistente pe calculatoarele utilizatorilor, din cauza unui update de software. După ce a fost informată de acest lucru, NSA a dezactivat trimiterea de cookie-uri de pe site-ul propriu.[9] O directivă din 2002 a Uniunii Europene în privința securității informațiilor de natură personală pe Internet conține reguli legate de folosirea cookie-urilor. Printre altele, Articolul 5, Alineatul 3 specifică faptul că salvarea datelor (cum ar fi cookie-uri) pe calculatorul unui utilizator poate fi făcută doar dacă: 1) utilizatorului i se spune cum vor fi utilizate aceste date; și 2) utilizatorului i se dă posibilitatea de a refuza aceste date. Totuși, același articol menționează faptul că salvarea datelor necesare din motive tehnice este exceptată de la această regulă. Această directivă trebuia aplicată încă din octombrie 2003, dar un raport din decembrie 2004[10] spune (la pagina 38) că această prevedere nu a fost pusă în practică, și că unele țări membre nici măcar nu au adoptat-o (Slovacia, Letonia, Grecia, Belgia, și Luxembourg). Același raport propune o analiză serioasă a situației din statele membre (ale Uniunii Europene). Dezavantaje ale cookie-urilorÎn afară de problema securității datelor personale, mai există câteva motive pentru care folosirea cookie-urilor este criticată: ele nu pot identifica foarte precis utilizatorii, și pot fi folosite pentru a ataca sistemele IT. Identificarea imprecisăDacă pe un calculator sunt folosite mai multe navigatoare, fiecare va avea cookie-urile sale. Deci cookie-urile nu identifică persoana, ci combinația cont de utilizator, calculator, navigator. Oricine folosește mai multe conturi de utilizator, calculatoare sau navigatoare, va avea mai multe seturi de cookie-uri. De asemenea, prin cookie-uri nu se poate face diferența dintre doi utilizatori care folosesc același calculator și navigator (dacă nu folosesc conturi de utilizator diferite). ![]() Interceptarea cookie-urilorÎn mod normal, cookie-urile sunt transferate între un server (sau mai multe servere din același domeniu) și calculatorul utilizatorului. Deoarece cookie-urile pot conține informații confidențiale (nume de utilizator, parolă etc.), ele nu ar trebui să fie accesibile altor calculatoare. Din păcate, sesiunile HTTP obișnuite sunt vizibile tuturor calculatoarelor din rețea, care pot intercepta pachetele de date. Aceste cookie-uri nu pot conține deci informații confidențiale. O soluție posibilă este HTTPS, care folosește Transport Layer Security pentru a cripta toate datele schimbate între server și calculatorul utilizatorului. ![]() Așa numitul „cross-site scripting” (scripting inter-sit) permite trimiterea unui cookie altor servere, care nu ar trebui în mod normal să-l primească. Navigatoarele moderne permit executarea (de către client) a unor fragmente de cod primite de la server; dacă cookie-urile pot fi accesate în timpul execuției, ele ar putea fi trimise altor servere decât cele „autorizate”. Aceasta se numește „furtul” cookie-ului, iar criptarea nu ajută împotriva acestui gen de atac.[11] Această metodă este de obicei folosită pe sit-uri care permit utilizatorilor să trimită conținut HTML. Folosind un anumit fragment de cod, un utilizator rău-voitor poate să primească cookie-uri ale altor utilizatori; cu ajutorul lor, el poate apoi să se conecteze și să se păcălească serverul, care crede că altcineva s-a autentificat. „Otrăvirea” cookie-urilor![]() Cookie-urile ar trebui să fie reținute și trimise serverului neschimbate; un atacator ar putea însă să le modifice și apoi să le trimită serverului. Acest proces se numește „otrăvirea” cookie-urilor, și este uneori folosit după „furtul” lor. Dacă, de exemplu, un cookie reține suma care trebuie plătită pentru cumpărăturile din coșul virtual, schimbarea acestei valori ar putea permite cumpărarea unor bunuri la un preț mult mai mic. Totuși, cele mai multe site-uri rețin cu ajutorul cookie-urilor doar un identificator de sesiune: acesta este un număr unic (generat aleator) care identifică sesiunea utilizatorului - el reprezintă de fapt un index într-o tabelă internă a serverului, în care se rețin valorile cu adevărat importante, cum ar fi prețul unor cumpărături, ș.a.m.d.. În acest fel problema cookie-urilor invalide este în principiu eliminată. Cookie inter-siteFiecare site ar trebui să aibă acces doar la cookie-urile proprii, adică un site de genul Alternative la cookie-uriExistă o serie de alternative la folosirea cookie-urilor. Acestea au însă și ele dezavantajele lor, de aceea cookie-urile sunt preferate de cele mai multe ori în practică. Cele mai multe dintre aceste metode alternative permit urmărirea acțiunilor utilizatorilor, deși cu o acuratețe mai mică decât cea a cookie-urilor. Securitatea informațiilor personale rămâne deci o problemă, chiar dacă navigatorul este configurat să nu accepte cookie-uri. Adresa IPO metodă foarte puțin precisă de urmărire a utilizatorilor se bazează pe reținerea adreselor IP ale calculatoarelor care solicită pagini web. Aceasta a fost disponibilă și folosită încă de la începuturile World Wide Web-ului, pentru că trimiterea paginii către un client presupune cunoașterea adresei IP a acestuia (sau a proxy-ului, dacă se folosește unul). Această adresă poate fi reținută de către server indiferent dacă cookie-urile sunt sau nu folosite. Totuși, calculatoarele și proxy-urile pot fi folosite de mai mulți utilizatori; de asemenea, același calculator poate avea adrese IP diferite, de exemplu în cazul unor conexiuni succesive prin dial-up. De aceea, o urmărire fiabilă a unui utilizator este dificilă; o proprietate a protocolului HTTP poate ajuta în acest sens: atunci când un navigator cere o pagină din cauză că utilizatorul urmează o legătură, cererea conține și adresa paginii pe care se află această legătură. Dacă serverul stochează aceste adrese, el poate avea succesiunea de pagini vizitate de utilizator. Nici această metodă nu este la fel de eficientă ca folosirea cookie-urilor, deoarece mai mulți utilizatori pot accesa aceeași pagină de la același calculator, NAT router, sau proxy și apoi să urmeze două legături diferite. În orice caz, în acest fel se pot doar urmări acțiunile utilizatorului, și nu se pot suplini celelalte moduri de folosire a cookie-urilor. Urmărirea cu ajutorul adresei IP poate fi imposibilă dacă utilizatorul folosește unul dintre sistemele de acces anonim la internet, cum ar fi Tor. Acestea fac ca un navigator să aibă mai multe adrese IP în cadrul unei singure sesiuni, și chiar pot face să pară că de la aceeași adresă IP vin mai mulți utilizatori. URL (query string)O metodă mai precisă se bazează pe introducerea informației în adresa URL. Partea denumită „query string” este folosită de obicei, dar se pot folosi și alte secțiuni. Mecanismul sesiunilor PHP folosește această metodă dacă cookie-urile nu sunt activate. În principiu metoda constă în adăugarea la adresele URL ale legăturilor (de pe paginile găzduite) a unui șir de caractere (informația care altfel ar fi fost reținută într-un cookie). Atunci când este urmată una dintre legături, navigatorul returnează întregul URL (deci și partea atașată) serverului. Diferența față de mecanismul cookie-urilor este următoarea: dacă URL-ul este refolosit (de exemplu trimis prin e-mail sau reținut în navigator), aceeași informație este primită de server; de exemplu urmând un URL primit prin e-mail, utilizatorul va fi întâmpinat de preferințele ori coșul de cumpărături inițial (al celui care i-a trimis e-mail-ul). Mai mult, dacă același utilizator deschide aceeași pagină de două ori, dar „venind” din pagini diferite (de exemplu dintr-un motor de căutare și dintr-o altă pagină a aceluiași domeniu), el va vedea lucruri diferite. Un alt dezavantaj al acestei metode este legat de securitate: trimițând o adresă prin e-mail, este posibil să fie trimis și un identificator de sesiune, iar cel care va urma legătura va apărea pentru server ca fiind un utilizator autentificat. În această privință cookie-urile sunt mult mai sigure, fiind mai greu de „furat”. Autentificare HTTPProtocolul HTTP include mecanisme (cum ar fi digest access authentication), care permit accesarea unei pagini Web doar după furnizarea unui nume de utilizator și a unei parole, pe care navigatorul le reține și le transmite server-ului la fiecare cerere, fără ca utilizatorul să le introducă de fiecare dată; din punctul acestuia de vedere, lucrurile se desfășoară ca și în cazul folosirii cookie-urilor. Totuși, transmiterea parolei (și chiar a numelui de utilizator) de fiecare dată când este cerută o pagină este destul de nesigură: acest trafic poate fi interceptat. Identificatorul de sesiune (informația care putea fi interceptată dacă se foloseau cookie-uri) expiră destul de repede după ce nu a fost folosit, devenind inutilizabil pentru un atacator. Obiecte Locale Macromedia FlashDacă un navigator folosește plugin-ul Macromedia Flash Player funcția de salvare locală a unor obiecte poate fi folosită într-un mod foarte asemănător cookie-urilor. Aceasta poate fi o opțiune atrăgătoare pentru dezvoltatorii de pagini Web, pentru că majoritatea utilizatorilor de Windows folosesc acest plugin, iar limita de mărime este de 100 kb. În plus, configurările sunt separate de cookie-uri, deci stocarea locală a obiectelor poate fi activată, iar cookie-urile dezactivate. Alte metode de a stoca date localUnele navigatoare suportă un mecanism prin care paginile Web își pot stoca local unele date printr-un script. Internet Explorer, de exemplu, poate fi folosit pentru a stoca date într-o pagină Web salvată pe hard-disk, într-un document XML, sau în secțiunile „Favorites” („Pagini favorite” ori „Semne de carte”) ori „History” („Pagini recente”) ale navigatorului.[12] window.nameDacă Javascript este activat, proprietatea name Istoria cookie-urilorTermenul vine de la expresia din limba engleză „magic cookie”, care desemnează un pachet de date pe care un program îl primește doar pentru a-l trimite înapoi nemodificat. Acest procedeu era deja larg răspândit atunci când, în iunie 1994, Lou Montulli a avut ideea de a-l folosi în cadrul comunicațiilor web[14]. Pe atunci el era angajat al Netscape Communications, care dezvolta o aplicație e-commerce pentru un client, iar cookie-urile au fost folosite pentru a implementa un „coș de cumpărături virtual”[15][16] Împreună cu John Giannandrea, Montulli a scris descrierea tehnică a cookie-urilor, iar versiunea 0.9 a navigatorului Netscape (lansată în septembrie 1994) accepta cookie-uri. Prima aplicație a cookie-urilor a fost pe situl Netscape - se verifica dacă un vizitator intra accesa pentru prima dată situl. Montulli și Giannandrea au depus o cerere de brevetare a mecanismului (1995), primind brevetul în 1998. Versiunea 2 a Internet Explorer (lansată în 1995) suporta de asemenea cookie-uri.[17] La acel moment, introducerea cookie-urilor nu era foarte cunoscută de publicul larg. Cookie-urile erau acceptate de setările implicite ale navigatorului, iar utilizatorii nu erau notificați de prezența lor. Un articol Financial Times, publicat în12 februarie 1996, a atras atenția asupra cookie-urilor, mai ales din cauza posibilității de a sustrage cu ajutorul lor informații personale. Primele specificații oficiale au fost scrise în februarie 1997, de IETF (documentul RFC 2109). Cookie-urile „third-party” au fost identificate ca fiind o amenințare la adresa anonimității utilizatorilor, astfel încât documentul recomandă ca ele să nu fie acceptate deloc, sau măcar ca aceasta să fie setarea implicită a navigatorului. Companiile de publicitate deja foloseau cookie-uri, iar recomandarea privind cookie-uri „third-party” nu au fost respectate de Netscape ori de Internet Explorer. RFC 2109 a fost urmat de RFC 2965 în octombrie 2000. ImplementareaCrearea unui cookiePaginile web sunt transmise prin HTTP; navigatorul începe prin a trimite o cerere serverului. De exemplu, pentru a accesa pagina http://www.w3.org/index.html, navigatorul se conectează la serveul www.w3.org și trimite o cerere de forma:
Serverul răspunde trimițând pagina cerută, precedată de un pachet de text numit „HTTP header”. Acesta poate conține linii care cer navigatorului să rețină cookie-uri:
Linia
În acest fel serverul știe că aceasta nu e prima cerere, și va răspunde trimițând pagina cerută, eventual împreună cu alte cookie-uri. Valoarea unui cookie poate fi modificată de server trimițând linia În general, linia cookie-urile pot fi create și de scripturi (de exemplu JavaScript) care rulează în cadrul navigatorului. În JavaScript, se folosește obiectul Alte proprietăți ale cookie-urilorÎn afară de nume și valoare, un cookie poate să conțină data expirării, o cale, un nume de domeniu (domain name), și dacă cookie-ul trebuie sau nu să fie transmis doar prin conexiune criptată (Transport Layer Security). RFC 2109 prevede folosirea unui număr care să rețină versiunea cookie-ului, dar acesta e de obicei omis. Aceste proprietăți urmează după ![]() Numele de domeniu și calea spun navigatorului cărui server să trimită cookie-ul atunci când încearcă să acceseze o pagină. Dacă nu sunt specificate, valoarea implicită este domeniul și calea obiectului din cererea curentă. Ca urmare, șirurile domeniu și cale pot să ducă la trimiterea unui cookie la alt server decât cel implicit. Din motive de securitate, cookie-ul este acceptat doar dacă serverul este membru al domeniului specificat în proprietățile cookie-ului. cookie-urile sunt de fapt identificate de tripleta nume/domeniu/cale, nu doar de nume (În varianta originală Netscape apărea doar perechea nume/cale). Cu alte cuvinte, același nume dar domenii diferite reprezintă cookie-uri diferite (probabil cu valori diferite). Data expirării specifică momentul în care navigatorul va șterge cookie-ul din memorie. În mod implicit (dacă nu se specifică o dată a expirării), cookie-urile sunt șterse la închiderea sesiunii (oprirea programului), dar dacă este specificată o anumită dată, cookie-ul va rămâne în memorie(până la acea dată). În acest fel, specificând o dată a expirării, cookie-urile „supraviețuiesc” între sesiuni; această proprietate se numește „persistență” De exemplu, un server ar putea să trimită un cookie de forma următoare:
Numele acestui cookie este Data expirării este 31 decembrie 2010, ora 23:59:59 GMT. Orice cerere după acea dată nu va mai fi însoțită de acest cookie, care va fi șters. Cookie-urile mai pot fi șterse de server (trimițând o cerere de modificare și schimbând data de expirare undeva în trecut) sau de utilizator, din meniul navigatorului. Expirarecookie-urile expiră, și de aceea nu sunt trimise de către navigator spre server în condițiile de mai jos:
A treia condiție permite unui server sau unui script să șteargă în mod explicit un cookie. AutentificareCookie-urile pot fi folosite de servere pentru a recunoaște utilizatorii autentificați și pentru a modifica paginile trimise în funcție de preferințele acestora (personalizare). De exemplu:
Aceasta este metoda folosită de aproape toate siturile, inclusiv Wikipedia. Personalizarea paginilorÎn mod similar autentificării, serverul află ce utilizator îi cere o pagină și poate să o trimită în consecință, în funcție de preferințele exprimate anterior, și care au fost reținute de server. Se pot personaliza pagini chiar în cazul utilizatorilor care nu au un cont pe server: pur și simplu se rețin preferințele în cadrul cookie-ului, și la cererile următoare, trimițând și cookie-ul, navigatorul trimite și preferințele utilizatorului. De exemplu, Google reține preferințele utilizatorilor într-un cookie numit Urmărirea utilizatorilorMetoda cea mai folosită este următoarea:
Parcurgând această listă, este posibil să se afle ce pagini (și în ce ordine) au fost vizitate de un anumit utilizator (identificat de un anumit cookie). Cookie-uri „third-party”Imaginile sau alte obiecte conținute de o pagină web pot să fie de fapt pe alt server decât cel pe care este pagina propriu-zisă. Pentru a afișa aceste obiecte, navigatorul le descarcă de pe serverele lor, eventual primind și cookie-uri. Acestea se numesc „third party”, dacă serverul care le-a creat se află în alt domeniu decât serverul paginii. Acest fenomen se întâmplă mai ales în cazul reclamelor. Imaginile publicitare se află de obicei stocate pe serverele companiei publicitare, în alt domeniu decât pagina web pe care sunt afișate. Dacă navigatorul acceptă cookie-urile, compania de publicitate poate să urmărească activitatea utilizatorului pe mai multe situri (pe toate siturile vizitate, care au imagini ce provin de la acea companie de publicitate). Aceasta se face folosind un URL unic pentru fiecare sit (astfel încât aceeași imagine afișată pe două situri are alt URL) sau cu ajutorul câmpului Companiile de publicitate au negat permanent că aceste informații ar fi folosite și pentru alte scopuri în afara stabilirii unor preferințe ale utilizatorilor. Multe navigatoare moderne, cum ar fi Internet Explorer, Opera sau Mozilla Firefox, permit utilizatorului să aleagă blocarea cookie-urilor „third party”. Versiunea 6 a Internet Explorer permite și o formă intermediară de blocare: dacă Coșul de cumpărături virtualAceasta este o altă aplicație a cookie-urilor, discutată și mai sus „Furtul” cookie-urilorDeși în principiu cookie-urile sunt trimise doar serverelor care le-au creat, există metode de a le „fura”, adică de a convinge navigatorul să le trimită altor servere. Printre altele, scripturile JavaScript sau JScript au de obicei acces la toate cookie-urile stocate de navigator, putând să le trimită oriunde. Aceasta, împreună cu situri care permit utilizatorilor să le modifice paginile scriind conținut HTML duce la situații nedorite. De exemplu, cineva care deține domeniul
Când un utilizator apasă pe această legătură, navigatorul înlocuiește Acest gen de atac este imposibil de prevenit de către navigator, pentru că scriptul vine chiar de la serverul care a creat cookie-urile, și totul pare a fi autorizat de acel server. Singura soluție este ca administratorii siturilor care permit utilizatorilor să le modifice conținutul să implementeze metode pentru respingerea acestui gen de scripturi. cookie-urile nu sunt vizibile în programele de pe partea client precum JavaScript dacă au fost trimise cu flag-ul HttpOnly. Din punctul de vedere al serverului, singura diferență față de cazul normal este că în linia set-cookie se adaugă la sfârșit șirul `HttpOnly':
Când navigatorul primește un astfel de cookie, el trebuie să îl folosească în mod obișnuit pentru schimburile HTTP următoare, dar să nu îl facă vizibil scripturilor părții client. Referințe
Legături externe
|
Portal di Ensiklopedia Dunia