|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Un cookie HTTP sau un modul cookie este un text special, deseori codificat, trimis de un server unui browser web şi apoi trimis înapoi (nemodificat) de către browser, 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 o preluare directă din limba engleză, având în limbajul curent semnificaţia de „prăjiturică” sau „biscuit”. Se pronunţă aproximativ „cu-chi”. În informatică el este derivat din termenul „magic cookie”, un concept des utillizat în IT, care a şi inspirat cookie-urile HTTP. În general numele de „cookie” 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 cauza faptului că permit strângerea de informaţii despre comportamentul utilizatorilor (în principiu, ce pagini vizitează şi când). Ca urmare, aspecte ale folosirii lor (şi a informaţiilor culese) sunt supuse unor restricţii legale în unele ţări, 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 nici o operaţie. Ele nu sunt nici spyware şi nici viruşi, deşi anumite programe anti-virus şi anti-spyware le semnalează prezenţa în sistem. Cele mai multe browsere 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.
modifică 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ă situl, 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 situri 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 sit, sau chiar pe mai multe situri, în cazul cookie-urilor „third party” sau a aşa-numiţilor „web bugs”. Urmărirea în cadrul unui sit este făcută în scopul obţinerii unor statistici ale folosirii. Î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ă ce reclame să trimită la un anumit moment unui anumit utilizator. modifică RealizareaCookie-urile de obicei conţin date fără semnificaţie pentru utilizator sau pentru browserul său, dar care pot fi interpretate de server. Browserul le primeşte şi le returnează serverului nemodificate, introducând astfel o „amintire” a evenimetelor 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 afară de servere, cookie-urile mai pot fi create şi de aplicaţii web care rulează pe server şi comunică cu clienţii prin HTTP, şi 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 browserele 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 browserului. 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”. modifică NeadevăruriDe la apariţia cookie-urilor pe Internet s-au răspândit, din păcate, ş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 a celor chestionaţi credeau că:
De fapt cookie-urile conţin doar date, nu şi cod: ele nu pot să şteargă sau să citească ceva de pe PC-ul utilizatorului.[6] Totuşi, ele permit detectarea paginilor vizitate de un utilizator într-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 un 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 browserele lor. modifică Configurarea browseruluiCele mai multe browsere 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) browserul cere permisiunea utilizatorului la fiecare cookie, sau (3) toate cookie-urile sunt acceptate.
Fereastra de configurare a cookie-urilor din Mozilla Firefox, afişând cookie-urile în funcţie de domeniul de provenienţă.
Browserul 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 domeniii de internet; respingerea cookie-urilor third party (explicate mai jos); acceptarea cookie-urilor dar ştergerea lor la închiderea browserului; permisiunea ca un server să creeze cookie-uri pentru un alt domeniu. Cele mai multe browsere 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 browser 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. modifică Anonimitatea şi cookie-urile „third party”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 „third party” în limba engleză, o traducere mot-a-mot fiind „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 „third party”. 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). modifică 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. modifică Identificarea imprecisăDacă pe un calculator sunt folosite mai multe browsere, fiecare va avea cookie-urile sale. Deci cookie-urile nu identifică persoana, ci combinaţia cont de utilizator, calculator, browser. Oricine foloseşte mai multe conturi de utilizator, calculatoare sau browsere, 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 browser (dacă nu folosesc conturi de utilizator diferite). modifică 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ă. Browser-ele 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] Aceasă 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. modifică „Otrăvirea” cookie-urilorCookie-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ă. modifică Cookie inter-siteFiecare site ar trebui să aibă acces doar la cookie-urile proprii, adică un site de genul modifică 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ţiunulior 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ă browser-ul este configurat să nu accepte cookie-uri. modifică 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 browser 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 browser 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. modifică 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, browser-ul 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 browser), 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”. modifică 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 browser-ul 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. modifică Obiecte Locale Macromedia FlashDacă un browser 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. modifică Alte metode de a stoca date localUnele browsere 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 browser-ului.[12] modifică window.nameDacă Javascript este activat, proprietatea name modifică 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 browser-ului 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 browserului, 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 documnetul recomandă ca ele să nu fie acceptate deloc, sau măcar ca aceasta să fie setarea implicită a browser-ului. 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. modifică Implementareamodifică Crearea unui cookiePaginile web sunt transmise prin HTTP; browser-ul începe prin a trimite o cerere serverului. De exemplu, pentru a accesa pagina http://www.w3.org/index.html, browser-ul 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 browser-ului 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 cookiepoate 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 browser-ului. În JavaScript, se foloseşte obiectul modifică 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 caresă reţină versiunea cookie-ului, dar acesta e de obicei omis. Aceste proprietăţi urmează după Numele de domeniu şi calea spun browser-ului 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, sirurile 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 varainta 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 browser-ul 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ă prprietate 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 browser-ului. modifică Expirarecookie-urile expiră, şi de aceea nu sunt trimise de către browser 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. modifică 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. modifică 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 preferinele 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, browser-ul trimite şi preferinţele utilizatorului. De exemplu, Google reţine preferinţele utilizatorilor într-un cookie numit modifică 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). modifică 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, browser-ul 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ă browser-ul 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 browsere 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ă modifică Coşul de cumpărături virtualAceasta este o altă aplicaţie a cookie-urilor, discutată şi mai sus modifică „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 browser-ul să le trimită altor servere. Printre altele, scripturile JavaScript sau JScript au de obicei acces la toate cookie-urile stocate de browser, 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ă, browserul înlocuieşte Acest gen de atac este imposibil de prevenit de către browser, 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 browserul 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. modifică Referinţe
modifică Legături externe
|
| All Right Reserved © 2007, Designed by Stylish Blog. |