Door rabeb: Dag,
Wie kan me in normaal Nederlands uitleggen wat een "supercookie" is en wat het verschil is met een normale cookie?
Bedankt alvast
Browsers "praten" met webservers via het HTTP-protocol (HTTPS is de versleutelde variant daarvan, maar dat maakt voor dit onderwerp niet uit). HTTP is oorspronkelijk ontworpen voor relatief simpele pagina's die niet voortdurend van inhoud veranderen (deze pagina op security.nl verandert van inhoud zodra een commentaar wordt geplaatst) en waarvoor niemand aan hoeft te loggen. Het is ontworpen voor documentatie, en daarom is de oorspronkelijke opzetopzet simpelweg dat een browser om een pagina (of een onderdeel van een pagina zoals een afbeelding) vraagt en de server die teruggeeft, zonder dat de server zich druk maakt over de vraag welke van die opvragingen een verband met welke andere opvragingen hebben. Dat was domweg nergens voor nodig. Daarom wordt HTTP een "stateless protocol" genoemd, het houdt geen sessies en geen status van die sessies bij.
Maar al vrij snel werd dat een lastige beperking. Als je een webapplicatie maakt, bijvoorbeeld voor internetbankieren, dan moet een klant aanloggen en moet de server kunnen herkennen welke opvragingen en andere interacties bij welke klant horen zonder dat die telkens opnieuw moet aanloggen. Als je navigeert door de pagina's van zo'n webapplicatie dan krijg je op dezelfde pagina, zeg een transactieoverzicht, een andere inhoud te zien als je eerst een ander rekeningnummer of een andere periode had geselecteerd. De reactie van de server is afhankelijk van wat er eerder is gedaan, en dus heb je gebruikerssessies nodig waarvan de staat wordt bijgehouden.
Daarvoor zijn HTTP-cookies, de "gewone" cookies, toegevoegd aan het HTTP-protocol. Het zijn kleine hoeveelheden data die de server aan de browser doorgeeft en die de browser bij elke interactie weer teruggeeft. Een bij aanloggen gegenereerd brokje willekeurige data kan zo gebruikt worden om de gebruikerssessie te identificeren, de server herkent bij elke interactie bij welke sessie die hoort, en de server kan zelf de staat van die sessie bijhouden. Maar een cookie kan bijvoorbeeld ook gebruikt worden om bij een uitklapbaar menu (niet meer gangbaar, maar in de jaren '90 hadden websites dat vaak) bij te houden welke menukeuzes opengeklapt zijn en welke niet.
Dergelijke cookies hoeven alleen tijdens een sessie te bestaan, en niet langer bewaard te worden dan die duurt. Maar ze werden ook gebruikt om voorkeuren van bezoekers op te slaan, en dan wil je dat ze volgende week ook nog beschikbaar zijn. Daarom kunnen cookies (naar keuze van de website) ook op de harde schijf van de bezoeker worden opgeslagen.
Natuurlijk doken er lieden op die dat een handig hulpmiddel vinden om het doen en laten van bezoekers te volgen, werd het een privacyprobleem en werd het nodig om cookies in de gaten te kunnen houden, desgewenst te blokkeren of automatisch weer te verwijderen.
Omdat adverteerders en andere dataverzamelaars de gebruiker daarin niet willen respecteren boorden ze andere mogelijkheden aan. Plugins zoals Flash hebben, naast het cookiemechanisme van de browser, eigen mogelijkheden om data op de schijf van de bezoeker op te slaan. Omdat dat geen gewone HTTP-cookies zijn, omdat ze niet zo via de gewone browser-instellingen in te zien en te verwijderen zijn en omdat ze bepaalde restricties die browsers op het kunnen benaderen van cookies door scripts in webpagina's niet hadden worden dat soort alternatieven voor HTTP-cookies "supercookies" genoemd.
Met HTML5 is een uitgebreidere vorm van opslag op de computer van de gebruiker geïntroduceerd, die "local storage" wordt genoemd. Die staat meer data toe dan in een cookie past, en een belangrijk verschil is dat die niet automatisch met de server wordt gedeeld, hoewel dat via JavaScript wel degelijk kan. Het is bedoeld om bijvoorbeeld webapplicaties offline te kunnen gebruiken. Als je een online tekstverwerker gebruikt bijvoorbeeld kan het erg nuttig zijn om als de internetverbinding uitvalt een document toch te kunnen bewerken en bewaren op je eigen computer. Wat het gemeen heeft met cookies dat er ook een onderscheid is tussen vluchtige opslag (session storage) en permanente (offline storage). Ongetwijfeld zijn adverteerders en dergelijke zeer geïnteresseerd in zo'n mechanisme, maar het is ontworpen in een tijd dat allang duidelijk was dat er privacyproblemen zijn en de specificatie bevat hoofdstukken over privacy en security. Ik heb me er niet genoeg in verdiept om te weten hoe goed die beschermingen in de praktijk zijn.