GDPR for utviklere: det praktiske
Hva det faktisk betyr å bygge GDPR-riktig: tredjeparts-skanning, consent, EU-hosting og de vanligste feilene norske nettsider gjør.
title: "GDPR for utviklere: det praktiske" publishedAt: "2026-05-09" summary: "Hva det faktisk betyr å bygge GDPR-riktig: tredjeparts-skanning, consent, EU-hosting og de vanligste feilene norske nettsider gjør." tags: ["GDPR", "Personvern", "StackPatrol"] readingTime: 6
GDPR er 99 artikler og en haug med tolkninger. Her er det du som utvikler faktisk trenger å vite – praktisk, uten juristspråk.
Den viktigste setningen i GDPR
"Den registrerte har rett til å vite hva data brukes til, og å trekke tilbake samtykke."
Alt annet er i grunn konsekvenser av dette. Hvis du forstår det, forstår du GDPR.
Hva tredjeparter egentlig betyr
Hver gang du embedder en Google Font, legger til Google Analytics eller bruker en Intercom-chat, sender du brukerens IP-adresse og nettleserfingeravtrykk til et selskap utenfor EU. Det er en dataoverføring, og den krever enten:
- Eksplisitt samtykke (et skikkelig cookie-banner, ikke en falsk en)
- Berettiget interesse (veldig smalt juridisk begrep – misbrukes mye)
- Overføringsgrunnlag som Standard Contractual Clauses
Her er typiske syndere vi finner med StackPatrol:
| Tjeneste | Problem | EU-alternativ |
|---|---|---|
| Google Analytics | US-data, fingerprinting | Plausible, Umami |
| Google Fonts (CDN) | IP sendes til Google | Last ned fonter lokalt |
| Intercom | US-data, mye tracking | Crisp (EU-hosting mulig) |
| Hotjar | Session recording, US | PostHog (self-host) |
| Cloudflare | US-eeid | Hetzner + Nginx |
Hva du bør gjøre i dag
1. Last ned fontene dine
/* Ikke dette */
@import url('https://fonts.googleapis.com/css2?family=Inter');
/* Gjør dette – last ned og server lokalt */
@font-face {
font-family: 'Inter';
src: url('/fonts/inter.woff2') format('woff2');
font-display: swap;
}2. Bytt til personvernvennlig analyse
// Plausible – 1 linje, ingen cookies, GDPR-safe
<Script
defer
data-domain="dittdomene.no"
src="https://plausible.io/js/script.js"
/>Plausible sender ikke IP til tredjeparter, lagrer ingenting på brukerens enhet, og har servere i EU.
3. Bytt ut Google reCAPTCHA
// Honeypot i stedet for reCAPTCHA – null tracking
<input
type="text"
name="company_website"
tabIndex={-1}
autoComplete="off"
aria-hidden="true"
className="absolute left-[-9999px] h-0 w-0 opacity-0"
/>
// Server-side: kast meldingen hvis feltet er fylt ut
if (formData.company_website) return { status: "success" }; // stille drop4. Sett sikkerheitsheadere
// next.config.ts
async headers() {
return [{
source: "/(.*)",
headers: [
{ key: "X-Content-Type-Options", value: "nosniff" },
{ key: "X-Frame-Options", value: "DENY" },
{ key: "Referrer-Policy", value: "strict-origin-when-cross-origin" },
],
}];
}Cookie-banner: gjør det riktig
Et "aksepter alle"-banner med grønne knapper og grå "avvis"-tekst er ikke lovlig samtykke. Datatilsynet er klare på dette.
Et lovlig banner:
- Viser tydelig hva som lastes (og fra hvilke land)
- Har like tydelige "Aksepter" og "Avvis"-valg
- Husker avslaget på samme måte som akseptet
- Laster ingen tredjeparts skript før samtykke er gitt
Det enkleste alternativet: ikke last noe som krever samtykke. Bruk Plausible i stedet for GA, last fonter lokalt, og du trenger ikke et cookie-banner i det hele tatt.
Sjekk din egen side
StackPatrol er et gratis verktøy vi har bygget nettopp for dette – skriv inn domenet ditt og se nøyaktig hvilke tredjeparter som lastes, fra hvilke land, og om det finnes EU-alternativer.
Det tar 30 sekunder og er helt gratis.
Interested in a project?
Want to discuss something from the article, or have a project you'd like to build?