Privacy: what this page can and cannot do
Logs contain addresses, user names, URLs with tokens, sometimes worse. A line like this one tells a lot about a system and its users:
198.51.100.7 - - [18/Oct/2026:10:02:03 +0000] "POST /api/upload HTTP/1.1" 504 167 "-" "curl/8.5.0" 60.001 60.000This page is built so that what you drop on it stays in the tab. Below is exactly how, what it does not cover, and how to check it yourself instead of taking our word for it.
The Content-Security-Policy
Every page on log.grepboard.com is served with this policy (the hash is the one small inline script that applies your theme before the first paint):
default-src 'none';
script-src 'self' 'wasm-unsafe-eval' 'sha256-โฆ';
style-src 'self';
img-src 'self' data: blob:;
font-src 'self';
worker-src 'self';
connect-src 'none';
manifest-src 'self';
base-uri 'none';
form-action 'none';
frame-ancestors 'none'| Directive | Effect |
|---|---|
default-src 'none' | Anything not allowed below is blocked. |
connect-src 'none' | No fetch, XHR, WebSocket, EventSource or sendBeacon to any host, including log.grepboard.com. This is the line that makes uploading impossible. |
script-src 'self' 'wasm-unsafe-eval' 'sha256-โฆ' | Only scripts from this site, the WebAssembly core, and the one inline theme script. No third-party scripts, no analytics, no ads. |
img-src 'self' data: blob: | Images only from this site or generated locally, so an image request cannot carry data to another host. |
style-src 'self', font-src 'self' | Styles and fonts only from this site. |
worker-src 'self' | The analysis Worker must come from this site. |
form-action 'none' | Forms cannot submit anywhere. |
base-uri 'none', frame-ancestors 'none' | No base URL tricks; the page cannot be embedded in another site's frame. |
Other response headers: Referrer-Policy: no-referrer (links you follow from here do not tell the next site where you came from), X-Content-Type-Options: nosniff, Permissions-Policy: camera=(), microphone=(), geolocation=(), Strict-Transport-Security and Cross-Origin-Opener-Policy: same-origin.
What is stored, and where
- No cookies.
- No analytics script, no tracking pixel, no ad script on log.grepboard.com.
- Your logs are held in the tab's memory while it is open and are gone when you close or reload it.
- Local storage in your browser keeps a few preferences:
gb.theme(light or dark),gb.style(visual style),gb.introHideUntil(when the privacy notice may show again),gb.recipes(custom format recipes you saved) andgb.mask(only present when you turn export masking off). None of them contain log lines. Clearing site data removes them.
The server that delivers the page sees what any web server sees when a page and its files are requested: your IP address, user agent and the paths of those files. It never sees your logs, because the page cannot send them.
What the policy does not cover
Being exact about the limits is part of the point:
- Browser extensions run with their own permissions and can read any page you open, this one included. If you use extensions you do not trust, use a clean browser profile for sensitive logs.
- What you export or copy is yours to handle. Exports contain aggregated numbers, not raw lines. Masking is on by default: IP addresses keep only their first two parts plus a short tag, and emails become
***@***, and long hex or base64 tokens andpassword=/token=-style values become***. Paths and other labels from the top lists are still shown, so review before sending. - Report links and recipe links put their content after the
#in the address. Browsers never send that part to a server โ not to log.grepboard.com when the link is opened, and not in the Referer header. A report link holds the aggregated board (no raw lines; masked unless you turned masking off); a recipe link holds the recipe itself โ its name, how lines are split, field names and roles, and any regex, format definition, time format or time zone you set โ but no log lines. Anyone who has the link can read what is in it, the same as a file you send. - CSP does not govern where a link takes you. The page never puts raw log lines into links; report links contain only what the report shows.
- Fonts are not a side channel here. The page preloads the same three Latin font files on every visit, before any log is opened, and draws everything that comes from a log (and all non-Latin text) with fonts already installed on your system. Nothing about your log changes which files the browser asks for.
How to verify it yourself
- Check the header from a terminal:
curl -sI https://log.grepboard.com/ | grep -i '^content-security-policy' - In the browser, open DevTools โ Network, tick "Preserve log", reload. Click the document request; the content-security-policy response header is there.
- Clear the list and drop a log. No request carries data.
- In the DevTools Console, run
fetch("https://example.com"). The browser refuses it and reports a Content-Security-Policy violation for connect-src. - Switch the Network throttling to Offline and drop another file. It still works, because it never needed the network.
FAQ
Does log.grepboard.com upload my logs?
No. The page is served with Content-Security-Policy connect-src 'none', so the browser blocks every request the page could use to send data. You can check the header and watch the Network tab yourself.
Does it use cookies or analytics?
No cookies and no analytics or ad scripts. A few preferences are kept in your browser's local storage: theme, visual style, when to show the privacy notice again, saved format recipes, and whether export masking is off.
Can a browser extension read my log?
Yes, if it has permission to read pages. Extensions are outside the page's Content-Security-Policy. Use a profile without extensions for sensitive logs.
Are the exports safe to share?
Exports contain counts and top lists, never raw lines. Top lists can still include paths and client addresses, so review them before sending.