2026-08-20

Hoe je gevoelige gegevens uit logs en JSON verwijdert voordat je deelt.

Elke keer dat je een log, een API-response of een error-dump in een ticket of chat plakt, loop je het risico tokens, e-mails, IP's en geheimen te lekken. Zo ruim je het eerst op.

Illustratie van een ruwe log met gevoelige waarden links die door een redactiefilter gaat en rechts als schone log naar buiten komt

Op het moment dat je een logbestand, een API-response of een error-dump plakt in een Jira-ticket, een Slack-kanaal of een GitHub-issue, deel je mogelijk meer dan je denkt. E-mails, authenticatietokens, interne IP-adressen, telefoonnummers, gebruikers-ID’s — allemaal in platte tekst, begraven in geneste JSON of verstopt in stack traces. Het gebeurt elke dag, en de meeste mensen merken het pas achteraf.

Wat je waarschijnlijk lekt zonder het te weten

Gevoelige gegevens verbergen zich op plekken waar je ze niet verwacht:

Het probleem is niet dat één van deze dingen moeilijk te ontdekken is. Het is dat een productie-error-dump er tientallen kan bevatten, genest over meerdere objecten, en dat je hem snel wilt delen omdat er iets kapot is.

Waarom handmatig redigeren faalt

Je opent de log, zoekt op @ en maskeert de vijf e-mailadressen die je vindt. De zesde, die drie niveaus dieper in een genest metadata.contact_info-object zit, ontgaat je. Je zoekt op strings die op tokens lijken en vangt de Authorization-header, maar mist de refresh token in de body van de response. Je maskeert het e-mailadres maar laat de user_id staan die er in je database direct naar verwijst.

Handmatig redigeren faalt omdat:

Hoe de Privacy Opschoner werkt

De Privacy Opschoner draait volledig in je browser. Er wordt niets naar een server gestuurd — je plakt je tekst, hij verwerkt die lokaal en geeft je een opgeschoonde versie om te kopiëren.

Dit doet hij:

  1. Detecteert JSON automatisch wanneer de input als JSON te parseren is en verwerkt deze structureel — hij doorloopt de objectboom en vervangt gevoelige waarden terwijl keys en structuur intact blijven
  2. Valt terug op tekstmodus voor CSV, XML, ruwe logs en elk ander formaat — hij zoekt patronen en vervangt treffers inline
  3. Maskeert veelvoorkomende gevoelige patronen:
    • E-mailadressen
    • Telefoonnummers (internationaal en Amerikaans formaat)
    • IP-adressen (IPv4 en IPv6)
    • JWT-tokens (eyJ...)
    • API-keys en tokens (lange alfanumerieke strings die overeenkomen met gangbare formaten)
    • UUID’s
    • Lange hexadecimale strings die lijken op session ID’s of geheimen
  4. Labelt wat hij vervangt — de uitvoer toont [REDACTED-EMAIL], [REDACTED-TOKEN], [REDACTED-IP] enzovoort, zodat je ziet wat er is opgepakt

JSON-modus vs tekstmodus — wat is het verschil

De JSON-modus behoudt structuur en geldigheid. Waarden worden vervangen, maar keys en nesting blijven intact. De uitvoer is nog steeds geldige JSON die je in een ticket kunt plakken, en een andere ontwikkelaar kan de vorm van de response begrijpen zonder de echte gegevens te zien.

De tekstmodus vervangt treffers inline, waar ze ook verschijnen. De structuur van je log of CSV blijft ongewijzigd, maar gevoelige waarden worden verwisseld voor redactielabels. Dit is beter voor:

De tool detecteert automatisch welke modus wordt gebruikt, maar je ziet het aan de uitvoer — als je gestructureerde JSON ziet met [REDACTED-*]-waarden, was het de JSON-modus. Als je inline vervangingen in vrije tekst ziet, was het de tekstmodus.

Wanneer de opgeschoonde uitvoer veilig is om te delen

De opschoner pakt de gangbare patronen — e-mails, tokens, IP’s, UUID’s, telefoonnummers en strings die op geheimen lijken. Maar hij kent jouw domein niet. Voordat je de uitvoer plakt, controleer je op:

De opschoner is een sterke eerste ronde. Leg er je eigen domeinkennis overheen voordat je deelt.

Scenarios uit de praktijk

Bugrapport in Jira: je plakt de volledige API-response, schoont hem op en deelt de structuur zonder de gegevens. De ontwikkelaar kan de vorm van de response, de foutcode en de nesting zien — zonder echte e-mails of tokens te zien.

Slack-bericht tijdens een incident: in plaats van een screenshot van een log te maken (moeilijk doorzoekbaar en onmogelijk te kopiëren), plak je de tekst, schoon je hem op en deel je de schone versie. Je collega’s krijgen doorzoekbare tekst en je lekt geen credentials in een chat die gearchiveerd wordt.

GitHub-issue voor een third-party library: je stuit op een bug in een API-client en wilt de request en response plakken. Schoon eerst op — de maintainer heeft je echte API-key niet nodig om het probleem te reproduceren, en zodra het in een publiek issue staat, wordt het geïndexeerd door zoekmachines.

Aan boord nemen van een leverancier of aannemer: je moet een voorbeeldexport van gegevens delen zodat die een integratie kan bouwen. Plakken, opschonen, en de structuur delen — kolomkoppen, veldnamen, neststructuur — zonder de echte klantrecords.

Opschonen voordat je deelt — elke keer

De Privacy Opschoner kost ongeveer vijf seconden. Plakken, klikken, kopiëren, delen. Het is sneller dan handmatig zoeken en vervangen, hij pakt de geneste velden die je zou missen en hij stuurt nooit iets naar een server.

Zet hem in je bladwijzers. De volgende keer dat de productie eruit ligt en je een log in een ticket moet plakken, ben je blij dat je het gedaan hebt.