By · Last updated 2026-06-05

Tillbaka till BloggenTeknisk

GDPR-logghantering: Behåll felsökningsförmågan

Applikationsloggar samlar tyst på sig användarens e-postadresser, IP-adresser och kontonummer. Här är hur du delar loggar med tredje parter, konsulter och observabilitetsplattformar.

June 5, 20267 min läsning
JSON logsGDPR complianceDevOps privacylog anonymizationdata minimization

Personuppgifter döljer sig i applikationsloggar

Apploggar är en av de mest förbisedda GDPR-ytorna inom mjukvaruutveckling. Inte för att ingenjörer ignorerar lagen. För att användaruppgifter hamnar i loggfiler av misstag.

En enda JSON-förfrågningslogg kan hålla fyra PII-fält:

{
  "timestamp": "2025-11-14T09:22:13Z",
  "level": "ERROR",
  "endpoint": "/api/users/profile",
  "user_email": "sara.johansson@foretag.se",
  "client_ip": "82.123.45.67",
  "user_agent": "Mozilla/5.0",
  "error": "ValidationError: phone format",
  "input_value": "+46 70 123 45 67"
}

Den enskilda posten håller en e-postadress, en IP-adress och ett telefonnummer. Multiplicera det med miljontals dagliga API-anrop. Resultatet är en stor PII-aktivitet. Det kräver en rättslig grund, begränsningar och kontroller.

Tredjeparts loggdelning ökar GDPR-risken

Team delar loggfiler med externa parter hela tiden:

  • Penetrationstestföretag får poster för att kartlägga applikationsbeteende
  • Externa konsulter använder loggexempel för att hitta flaskhalsar
  • Loggplattformar (Elastic, Datadog, Splunk) tar emot fullständiga utflöden
  • SRE-konsulter kommer åt poster under incidenter
  • Utvecklingsteam i andra juridiska enheter tar emot filer för felsökning

Varje delning väcker GDPR Artikel 28-frågor. Är mottagaren ett personuppgiftsbiträde? Finns det ett personuppgiftsbiträdesavtal? Har de en rättslig grund för att se användaruppgifter i dessa filer?

Loggplattformar är en vanlig lucka. Att skicka utdata med riktiga användar-e-poster och IP-adresser till Elastic Cloud eller Datadog skapar en behandlingsrelation. Den relationen kräver ett personuppgiftsbiträdesavtal, standardklausuler och ett överföringsverktyg om plattformen befinner sig utanför EU. Vart och ett av dessa tar tid och juridisk granskning.

Den enklare vägen: ta bort användaruppgifter innan filer lämnar ditt system. Läs vår efterlevnadsöversikt för de fullständiga Artikel 28-reglerna.

Varför JSON-struktur gör detektion svårt

JSON-loggfiler varierar i struktur. Generisk textskanning räcker inte.

Nästlingsdjup: Användaruppgifter förekommer på valfritt djup. Fältet request.headers.x-forwarded-for håller IP-adresser. Fältet response.body.errors[0].field_value kan hålla användarinmatning. En platt textskanning missar fält begravda i nästlade sökvägar.

Inkonsekventa scheman: Varje API-slutpunkt producerar sin egen utformning. Autentiseringsfiler ser annorlunda ut än betalningsfiler. Profiluppdateringsfiler ser annorlunda ut än båda. Ett fastkögsvägsbaserat tillvägagångssätt missar användaruppgifter som visas vid konstiga sökvägar i felsammanhang.

Tekniska värden blandade med PII: Stack traces, felkoder och tidsstämplar måste förbli intakta. Fläckig borttagning raderar nödvändiga fält och gör filen oanvändbar.

Det rätta tillvägagångssättet är innehållsbaserad detektion. Hitta användaruppgifter baserat på vad de är — e-postmönster, IP-format, namngiven entitet — inte var de sitter i strukturen. Detta hanterar variabla scheman utan per-slutpunkts-konfiguration.

Konsekvent ersättning håller loggar användbara

Nyckelkravet är referentiell integritet. Om sara.johansson@foretag.se förekommer i 47 poster längs en förfrågningskedja måste alla 47 mappas till samma värde.

Mappningsregler:

  • sara.johansson@foretag.seuser1@example.com (samma värde i hela filen)
  • 82.123.45.67192.0.2.1 (RFC 5737 dokumentations-IP — tydligt inte verklig)
  • +46 70 123 45 67+46 XXX XXX XXXX (maskerad)

Med den mappningen kan en utvecklare spåra user1@example.com genom 47 poster, rekonstruera förfrågningskedjan och åtgärda felet — utan att se några verkliga användaruppgifter.

Dessa metadatafält förblir oförändrade:

  • Tidsstämplar (inte användardata)
  • Felkoder och typer (inte användardata)
  • Stack traces (kan innehålla teknik-ID:n, inte användardata)
  • HTTP-metoder, sökvägar, statuskoder (inte användardata)
  • Mätvärden och latensdata (inte användardata)

Resultatet är en fil som fungerar för felsökningsarbete. Den innehåller inga verkliga användaruppgifter. Se vår ordlista för skillnaden mellan anonymisering och pseudonymisering enligt GDPR.

Användningsfall: Loggdelning vid penetrationstest

Ett SaaS-företag genomförde en kvartalsvisa säkerhetsgranskning med ett externt penetrationstestteam. Omfattningen krävde 90 dagars produktions-API-utdata för att kartlägga autentiseringsflöden och analysera felmönster.

Rå volym: 180 MB JSON-filer. PII-antal: 4 200 unika användar-e-poster, 1 800 unika IP-adresser, 340 partiella kontonummer i felsammanhang.

Utan att ta bort användaruppgifter först skulle delning av dessa filer kräva:

  • Ett personuppgiftsbiträdesavtal med penetrationstestföretaget
  • Ett GDPR Artikel 46-överföringsverktyg (företaget befann sig utanför EU)
  • En granskning av meddelande till registrerade

Var och en av dessa lägger till juridiskt arbete och tid.

Med PII-borttagning applicerad:

  • Bearbetningstid: 25 minuter för 180 MB
  • Utdata: 180 MB strukturellt identiska filer, alla e-poster och IP-adresser ersatta med säkra värden
  • Resultat: penetrationstestteamet fick fullständigt sammanhang; noll verkliga användaruppgifter nådde dem
  • GDPR-utfall: inget personuppgiftsbiträdesavtal krävdes — borttagningsutdata är inte användardata enligt GDPR

Se vår FAQ för vanliga frågor om vad som räknas som anonymt enligt GDPR.

Integrera PII-borttagning i CI/CD

För team som regelbundet delar utdata kan detta steg köras inuti befintliga pipelines.

Loggrotation:

  1. Rotationsskript körs nattligen
  2. Borttagningssteg körs innan arkivering eller sändning till loggplattformar
  3. Borttagna filer går till externa system
  4. Originalfiler stannar internt med full lagring

Pre-delningsskript:

  1. Ingenjör behöver dela ett exempel med en konsult
  2. Kör skriptet: input=raw-logs/ output=clean-logs/
  3. Delar mappen clean-logs/
  4. Ingen manuell PII-granskning behövs

Sidecar-metoden:

  1. Sidecar tar bort utflödet innan vidarebefordran
  2. Realtids-borttagning bibehåller nytta för logganalys
  3. Plattformen tar emot noll verkliga användaruppgifter

Integration med lagringspolicy

GDPR Artikel 5(1)(e) kräver lagringsbegränsning. PII-borttagning passar in i vilken lagringspolicy som helst.

  • Rå utdata hålls i 7 dagar (för daglig felsökning)
  • Borttagna versioner hålls i 90 dagar (för trendanalys och incidentgranskning)
  • Borttagningssteg körs på dag 7

Detta uppfyller lagringsbegränsning. Det eliminerar risken med att hålla rå utdata på lång sikt.

Källor

Redo att skydda din data?

Börja anonymisera PII med 285+ entitetstyper på 48 språk.

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.