About Logs Sanitizer
Why a log sanitization tool that refuses to talk to a server, how the redaction is designed to keep a log useful, and — just as important — what it will not do for you.
The problem
Logs are where sensitive data collects without anyone deciding that it should. A framework prints request headers during an incident. A retry handler serialises a connection string. A debug branch dumps a whole user object. None of that was a decision anybody made, and all of it sits in a file that engineers then paste into a public issue, drop into a support thread, or feed to an AI assistant at two in the morning while trying to understand an outage.
Once that happens, the log stops being yours. Issue trackers get indexed. Support threads get archived far longer than you intended. A conversation with an assistant keeps whatever you fed it for as long as that conversation exists. The window in which you can clean a log is before you share it, not after.
Why the replacements keep their shape
Most redaction turns every address into [IP_1], [IP_2],[IP_3] and every user into [USER_1]. That protects the data and destroys the reason you opened the log. Forty lines from one retrying client become forty lines from forty apparent strangers, and the pattern you were chasing disappears with the values.
Here the same input always becomes the same stand-in, and the stand-in keeps the shape of what it replaced: an email becomes a plausible email, an address becomes a stable address from a reserved documentation range, a UUID becomes a UUID. You can still group by user, count distinct clients, and diff two runs. Genuine secrets are the deliberate exception — a password or an API key collapses to a plain label, because nobody correlates on a credential and ambiguity there is a hazard rather than a feature.
Why it runs in your browser
A tool that asks you to upload a file full of credentials in order to remove the credentials has a trust problem it cannot argue its way out of. So this one has no server to send anything to. Detection and replacement happen inside your tab, in a Web Worker, and the production page ships a Content-Security-Policy containing connect-src 'none' — which means the browser itself refuses to let the page open a network connection, whatever its JavaScript tries to do.
That last part matters more than the promise. Every privacy-first tool says nothing is uploaded. This one is arranged so you can check: open your developer tools, watch the network panel, and read the response header on the privacy section of the home page, which is rendered from the same policy that is actually served.
How it is built
- A static site with no backend, so there is no request handler that could receive your log even by accident.
- 53 detectors across credentials, cloud provider keys, personal data, payment data, network identifiers, infrastructure, identifiers, and filesystem paths.
- Matches are confirmed rather than assumed: card numbers by the Luhn algorithm, IBANs by mod-97, JSON Web Tokens by decoding the header and checking for an
algclaim. - Structured logs are parsed rather than guessed at, so JSON, JSON Lines, and logfmt are redacted by field name and a key like
authorizationis caught even when its value looks ordinary. - An entropy pass scores random-looking strings on their own merits, catching homegrown tokens that match no published prefix.
What it deliberately is not
Being clear about the limits is part of the tool being trustworthy, so:
- It is not a compliance certificate. The GDPR, PCI DSS, and HIPAA presets are starting points named after the concerns they address, not an assurance that any particular obligation has been met. Only you know what your data contains and what rules apply to it.
- It is not an undo. If a real credential reached a log, it is compromised. Rotate it at the source. Cleaning the copy you are about to share does nothing about the original exposure.
- It is not a substitute for reading the output. Detection is heuristic. It can miss something shaped in a way nobody anticipated, and it can replace something harmless. Review the diff before you hand the log to anyone.
- It is not a hosted service. There are no accounts, no history, and no recovery. Your settings and custom rules live in this browser only, which is why there is an export button.
Who is behind it
Logs Sanitizer is maintained by Dipesh Kumar. If a detector misses something it should have caught, or flags something it should have left alone, that is the most useful thing you can report — write to kdipesh20@gmail.com, or see thecontact page for what to include.