By · Last updated 2026-06-05

Tilbage til BlogTeknisk

GDPR i applikationslogfiler: JSON PII-compliance

Applikationslogfiler indeholder kunde-e-mailadresser, IP-adresser og kontonumre, som GDPR artikel 5(1)(e) kræver håndteret.

June 5, 20266 min læsning
API logsGDPR complianceJSON anonymizationobservabilitystorage limitation

Den stille GDPR-risiko i din logstack

Opdateret for 2026

De fleste teams kontrollerer deres database for personoplysninger. Færre gør det samme for deres logsystem.

GDPR artikel 5(1)(e) begrænser, hvor længe du kan opbevare personoplysninger. For databaser fastsætter teams politikker og kører sletningsjob. For logfiler er reglen enklere: behold alt i 90 dage til fejlsøgning.

Problemet? Disse poster indeholder personoplysninger. Anmodningsposter indeholder bruger-e-mails. Fejlfangster indeholder rå inputværdier. Adgangsposter indeholder IP-adresser. Hver af disse tæller som personoplysninger under GDPR. Dit team kræver et retsgrundlag og en opbevaringsplan for hver.

Hvad der ender i dine logfiler

Standard web-app-logning trækker en bred vifte af persondata ind.

Adgangsposter (nginx/Apache):

  • IP-adresser — personoplysninger ifølge EDPB-vejledning
  • User-agent-strenge — kan muliggøre enhedsfingeraftryk
  • Sessionstokens — hvis skrevet til output

App-poster (struktureret JSON):

  • Bruger-ID'er og e-mailadresser
  • Inputfejl — inkluderer ofte den rå ugyldige værdi, som kan være reel brugerinfo
  • Forretningshændelser — ordre-ID'er knyttet til kundekonti
  • Søgeforespørgsler — kan indeholde navne eller adresser

API-gateway-poster:

  • Auth-headers — delvist fanget i nogen opsætninger
  • Forespørgselsparametre — kan bære bruger-ID'er, navne eller e-mails
  • Anmodnings- og svarlegemer — til stede i debug-niveau-opsætninger

Database-revisionsposter:

  • SQL-forespørgsler med WHERE-klausuler som email = 'bruger@example.com'
  • Bogstavelige personværdier i forespørgselsparametre

Dette er ikke gjort med vilje. Det er en bivirkning af logning bygget til fejlsøgning, ikke GDPR.

EDPB-vejledning om IP-adresser

Det Europæiske Databeskyttelsesråd siger, at IP-adresser er personoplysninger. Internetudbydere kan linke dem til abonnenter. Inden for en organisation kan de identificere specifikke brugere.

Påvirkningen er direkte. Adgangsposter med IP-adresser er personposter. At beholde nginx-output i 12 måneder betyder at beholde personoplysninger i 12 måneder. Det kræver et retsgrundlag under artikel 6. Det kræver også, at opbevaringsperioden matcher dit erklærede formål.

De fleste teams springer dette trin over. "Vi opbevarer poster i 90 dage, fordi sikkerhed siger det" er en tommelfingerregel. Det er ikke en GDPR artikel 5(1)(e)-gennemgang. Se vores juridiske compliance-oversigt for, hvordan dette passer ind i et bredere program.

Vejen til compliance

Den praktiske vej for de fleste teams er ikke at skære opbevaringsvinduerne ned. Operationelle og sikkerhedsmæssige begrundelser for længere vinduer er reelle. Den bedre vej er at maskere poster, inden de lagres langsigtet.

En lagdelt model fungerer godt.

0–7 dage: Fulde råposter til aktiv fejlsøgning. Syv dage er kort nok til de fleste teams.

7–90 dage: Maskerede poster til trendanalyse og sikkerhedsgennemgang. IP-adresser byttes ud. Bruger-e-mails bliver stabile tokens. Kontonumre maskeres. Nøglefelter — tidsstempler, fejlkoder, latenstider, slutpunkter — beholdes uændrede.

90+ dage (om nødvendigt): Kun aggregeret output. Hændelsestal, fejlrater, latenstidsintervaller. Ingen bruger-niveau-poster forbliver.

Personoplysninger stopper ved syv dage. Aggregeret output kan videreføres uden at eksponere nogen. Se Sikkerhed & Compliance for mere detalje.

Bevar strukturen intakt til overvågning

God maskering holder JSON-strukturen intakt. Den bytter kun indholdet ud. Dette holder output nyttigt til fejlsøgning og advarsler.

Beholdt uændret:

  • JSON-nøgler og indlejring
  • Tidsstempler og tidsorden
  • Fejltyper og HTTP-statuskoder
  • HTTP-metoder, stier og latensværdier
  • Forretningshændelsetyper

Byttet ud:

  • E-mailadresser → stabilt token per original (f.eks. user1@example.com)
  • IP-adresser → RFC 5737-intervaller (192.0.2.x)
  • Kontonumre → KONTO_XXXXX
  • Telefonnumre → +XX XXX XXX XXXX
  • Navne i fejltekst → [PERSON]

Stabile tokens holder traces nyttige. Et trace for user1@example.com på tværs af 40 poster fungerer det samme som originalen. Aggregerede metrikker — fejlrater, latenstider, gennemstrømning — kræver slet ikke personoplysninger. Se Ordliste for termerne pseudonymisering og anonymisering.

Tre måder at integrere dette på

Tre mønstre dækker de fleste it-teams.

Mulighed 1 — Pipeline-maskering: Fluentd eller Logstash opsnapper hver linje, inden den sendes videre. Et maskeringstrin kører inline. Elastic eller Datadog modtager kun rensede poster. Ingen ændringer i app-kode er nødvendige.

Mulighed 2 — Nightly batch: Råposter lander i lokal lagring. Et nightly job maskerer forrige dags output og sletter råversionen. Maskerede poster sendes til langsigtet lagring. Råoutput opbevares kun i syv dage.

Mulighed 3 — Pre-share maskering: Råposter forbliver interne med strenge adgangskontroller. Inden deling med penetrationstestere eller eksterne leverandører, kør et maskeringspass. Eksterne parter modtager altid rene versioner.

For GDPR-dokumentation er maskering en "teknisk foranstaltning" under artikel 32. Optegn værktøjet, dets opsætning og din opbevaringspolitik i dine Behandlingsaktivitetsregistre (RoPA) under artikel 30. Se vores FAQ for hyppige RoPA-spørgsmål.

Vil du have et virkelighedseksempel? Se casestudier for konkrete implementeringsdetaljer. Du kan også gennemgå vores priser for at se, hvilken plan der inkluderer indbyggede maskeringspipelines.

Kilder

Klar til at beskytte dine data?

Begynd at anonymisere PII med 285+ enhedstyper på tværs af 48 sprog.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.