Gidsen

Wat zijn cookies? Hoe websites je onthouden

Een cookie is een klein stukje tekst dat een website aan je browser vraagt op te slaan en bij elk volgend bezoek aan die site weer terug te sturen. Zo "onthoudt" een website jou: dat je bent ingelogd, wat er in je winkelmandje zit, welke taal je hebt gekozen. Cookies zijn gewoon gegevens, geen programma's, maar omdat ze je kunnen identificeren, zijn ze belangrijk voor zowel beveiliging als privacy.

Waarom het ertoe doet als je met AI bouwt

Cookies liggen onder verschillende functies die je aan een AI-bouwer vraagt, vaak zonder dat het woord "cookie" ooit ter sprake komt:

  • Inloggen. In de meeste webapps betekent "ingelogd blijven" een sessiecookie. Hoe die cookie is ingesteld, bepaalt hoe makkelijk hij te stelen is.
  • Winkelmandjes en voorkeuren. Een mandje dat een paginaverversing overleeft, berust vaak op een cookie of op opslag in de browser.
  • Analyse en advertenties. Het toevoegen van Google Analytics, een Meta-pixel of een chatwidget voegt meestal cookies van andere bedrijven toe.
  • Juridische meldingen. Op veel plekken hebben sommige cookies eerst toestemming van de bezoeker nodig, en daar komen cookiebanners vandaan.

Als je weet welke cookies je app zet en waarom, kun je betere keuzes maken voor beveiligingsinstellingen, toestemming en je privacyverklaring.

Een alledaagse vergelijking

Denk aan een garderobenummer. Je geeft je jas af en krijgt een genummerd ticket. Het ticket bevat je jas niet, alleen een nummer. Elke keer dat je terugkomt bij de balie, laat je het ticket zien, en de medewerker weet welke jas van jou is.

Een sessiecookie werkt op dezelfde manier. Wanneer je inlogt, houdt de server je gegevens aan zijn kant en geeft hij je browser een ticket — een lang willekeurig ID. Je browser laat dat ticket bij elk verzoek zien, en de server zoekt op wie jij bent. Wie het ticket kopieert, kan de jas ophalen, en daarom moeten inlogcookies worden beschermd.

Hoe een cookie werkt

  1. Je bezoekt een site. Het antwoord van de server bevat een header zoals Set-Cookie: session_id=8f3k...; HttpOnly; Secure; SameSite=Lax.
  2. Je browser slaat die op, gekoppeld aan het domein van die site.
  3. Bij elk later verzoek naar dezelfde site voegt de browser automatisch Cookie: session_id=8f3k... toe.
  4. De server leest hem en weet dat jij het bent.

De JavaScript van de pagina kan ook cookies maken, maar de belangrijkste — inlogsessies — moeten door de server worden gezet en voor JavaScript verborgen blijven.

Soorten cookies

SoortWat het betekentVoorbeeld
SessiecookieGeen vervaldatum; wordt verwijderd wanneer de browsersessie eindigtEen korte betaalstap
Blijvende cookieHeeft een vervaldatum (Expires of Max-Age) en overleeft herstarts"Onthoud me 30 dagen"
Eerste partijGezet door de site in de adresbalkJe login op die site
Derde partijGezet door een ander domein dat in de pagina is ingeslotenEen tracking-ID van een advertentienetwerk
Strikt noodzakelijkNodig voor een dienst die de gebruiker heeft gevraagdInlogsessie, winkelmandje
Niet-noodzakelijkPrettig om te hebben voor de eigenaar van de siteAnalyse, advertenties, A/B-testen

Browsers beperken cookies van derden steeds meer, omdat ze worden gebruikt om mensen over websites heen te volgen. Verschillende grote browsers blokkeren er nu standaard veel, en de details veranderen voortdurend, dus bouw niets belangrijks op cookies van derden.

Een uitgewerkt voorbeeld: een kleine online winkel

Stel dat je een winkel hebt gebouwd die handgemaakte kaarsen verkoopt. Dit zijn de cookies die een verstandige versie zou zetten, en waarom.

session — wordt gezet wanneer de eigenaar of een klant inlogt. Hij bevat alleen een willekeurig ID; de server bewaart de echte sessiegegevens. Instellingen: HttpOnly (paginascripts kunnen hem niet lezen), Secure (alleen verzonden via HTTPS), SameSite=Lax (niet meegestuurd bij de meeste verzoeken die door andere sites worden gestart). Strikt noodzakelijk.

cart_id — laat een bezoeker die niet is ingelogd zijn mandje behouden. Hij verwijst naar een winkelmandje dat is opgeslagen in de database. Strikt noodzakelijk, omdat de bezoeker heeft gevraagd dingen aan een mandje toe te voegen.

theme — onthoudt de donkere modus. Dit kan een cookie zijn, maar hij hoeft nooit de server te bereiken, dus localStorage van de browser is eenvoudiger.

Analysecookies — toegevoegd als je een analysetool installeert. Deze zijn niet-noodzakelijk. In de EU en het VK vereisen ze meestal toestemming voordat ze worden gezet, dus het analysescript moet wachten tot de bezoeker op "Accepteren" klikt.

Let op wat de winkel niet in cookies bewaart: de naam, het adres of de betaalgegevens van de klant. Cookies reizen mee met elk verzoek en staan op het apparaat van de gebruiker, dus ze moeten ID's bevatten, geen persoonsgegevens.

Veelgebruikte termen uitgelegd

TermWat het betekent
CookieEen klein naam-waardepaar dat de browser opslaat en terugstuurt naar de site.
Set-CookieDe responsheader waarmee een server een cookie aanmaakt of bijwerkt.
SessieDe registratie van de server van een ingelogde gebruiker, gekoppeld aan een cookie-ID.
HttpOnlyVerhindert dat JavaScript van de pagina de cookie leest, wat schade door geïnjecteerde scripts beperkt.
SecureDe cookie wordt alleen over versleutelde HTTPS-verbindingen verzonden.
SameSiteBepaalt of de cookie wordt meegestuurd bij verzoeken van andere sites (Strict, Lax of None).
Expires / Max-AgeWanneer de cookie moet worden verwijderd.
Domein / PadWelke adressen op de site de cookie ontvangen.
localStorageOpslag in de browser die door paginacode kan worden gelezen, maar niet automatisch naar de server wordt gestuurd.
XSSCross-site scripting: een script van een aanvaller dat in jouw pagina draait en gegevens probeert te stelen.
CSRFCross-site request forgery: een andere site die de browser ertoe brengt een verzoek met jouw cookies te versturen.
CookietoestemmingVooraf toestemming vragen aan bezoekers voordat niet-noodzakelijke cookies worden gezet.

Veelvoorkomende fouten en misverstanden

  • "Cookies zijn virussen." Het is gewone tekst. Ze kunnen geen code op je computer uitvoeren.
  • Gevoelige gegevens in cookies zetten. Sla een willekeurig ID op en bewaar de details op de server.
  • Inlogtokens in localStorage. Elk script dat op de pagina draait, kan localStorage lezen, ook een geïnjecteerd script. Een HttpOnly-cookie kan door paginascripts helemaal niet worden gelezen.
  • Secure en HttpOnly ontbreken. Deze twee vlaggen zijn goedkoop en dichten veelvoorkomende gaten.
  • Aannemen dat een banner alles dekt. Een banner die analyse laadt voordat iemand op "Accepteren" klikt, doet zijn werk niet.
  • Uitloggen vergeten. Uitloggen moet de cookie verwijderen en de sessie op de server beëindigen, zodat een gekopieerde cookie niet meer werkt.
  • "Als ik geen cookies gebruik, gelden de privacyregels niet." Regels zoals de AVG gelden voor persoonsgegevens waar ze ook worden opgeslagen — ook in lokale opslag, apparaatvingerafdrukken en serverlogs.

Wat je aan je AI-bouwer kunt vragen

  • "Geef een lijst van elke cookie die de app zet, waarvoor die dient, hoe lang hij blijft, en of hij strikt noodzakelijk is."
  • "Gebruik voor de inlogsessie een HttpOnly-, Secure-, SameSite=Lax-cookie. Zet geen authenticatietokens in localStorage."
  • "Bewaar in de cookie alleen een willekeurig sessie-ID; sla sessiegegevens op de server op."
  • "Bij uitloggen: verwijder de cookie en maak de sessie op de server ongeldig."
  • "Laad analyse- of marketingscripts pas nadat de bezoeker ze heeft geaccepteerd, en onthoud zijn keuze."
  • "Voeg een eenvoudige cookiesectie toe aan de privacyverklaring die overeenkomt met de lijst hierboven."

Voor het toestemmingsdeel, zie hoe voeg je cookietoestemming toe. Voor hoe cookies bij inloggen passen, lees wat authenticatie is.

Cookies in Mythex

Mythex biedt geen ingebouwd inloggen voor de gebruikers van je app, dus de cookies die je app zet, komen uit de eigen code en de tools die je eraan toevoegt — bijvoorbeeld een sessiecookie van de authenticatiemethode die je kiest. Vraag de agent in de chat om ze op te sommen, de instellingen aan te scherpen of een toestemmingsbanner toe te voegen, en controleer het resultaat in de live preview voordat je publiceert. Het documentatierecept over inloggen aan je app toevoegen is een goede startprompt, en beveiliging voor apps die je bouwt behandelt hoe je sleutels en geheimen uit de browser houdt.

Veelgestelde vragen

Wat is een cookie op een website?

Een cookie is een klein stukje tekst dat een website aan je browser vraagt op te slaan. De browser stuurt het bij elk later verzoek naar die site terug, waardoor de site dingen kan onthouden, zoals of je bent ingelogd of wat er in je winkelmandje zit.

Zijn cookies gevaarlijk?

Cookies zijn gewoon gegevens, geen programma's, dus ze kunnen geen code uitvoeren en een computer niet besmetten. De zorgen gaan over privacy, wanneer cookies van derden je over meerdere sites volgen, en over beveiliging, wanneer een inlogcookie wordt gestolen en gebruikt om zich als jou voor te doen.

Wat is het verschil tussen eerstepartij- en derdepartijcookies?

Een eerstepartijcookie wordt gezet door de site in je adresbalk, bijvoorbeeld een inlogcookie. Een derdepartijcookie wordt gezet door een ander domein dat in de pagina is ingesloten, zoals een advertentienetwerk, en wordt vaak gebruikt om je over veel sites te volgen.

Heb ik een cookiebanner nodig?

Dat hangt af van waar je gebruikers zitten en welke cookies je gebruikt. In de EU en het VK hebben niet-noodzakelijke cookies, zoals analyse of advertenties, meestal eerst toestemming nodig, terwijl cookies die strikt nodig zijn voor de dienst, zoals een inlogsessie, meestal niet vallen onder die toestemming. Controleer de regels die op jou van toepassing zijn.

Wat is het verschil tussen cookies en localStorage?

Beide slaan gegevens op in de browser. Cookies worden bij elk verzoek automatisch naar de server gestuurd, wat past bij inloggen. localStorage blijft in de browser en wordt alleen gelezen door de eigen code van de pagina, wat past bij voorkeuren zoals een thema.

Mythex · Pricing · Bouw alles met AI · Website- en app-templates · Mythex vergeleken · Woordenlijst voor apps bouwen met AI · Gratis tools voor apps bouwen met AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)