Security guide

Why black boxes on a PDF leak

Covering a PDF passage with a black rectangle is not redaction. PDFs render in layers: the box is one layer, the text another, and the box merely sits on top while the text objects stay intact. Anyone can select-all and copy, run a parser, or OCR the page to recover what you thought was hidden. That's "fake redaction" — it gives a false sense of safety and is more dangerous than not redacting at all.

Sample PDF with black boxes inspected by a magnifier

Verify before sharing

1

Real-world failures

Paul Manafort's lawyers covered sensitive passages in a court filing with black boxes — reporters copy-pasted the "hidden" text right out.

The Epstein documents and numerous declassified files hit the same problem. Researchers estimate ~90% of "redacted" PDFs can be reversed in 30 seconds.

2

Why it happens

"Draw a rectangle" in graphics software just adds an opaque shape on top of the page; it deletes nothing underneath. The text, images, and vector paths all remain in the file.

Worse: even some tools' "redact" button only changes the display layer without rewriting the content stream, so the result is still recoverable.

3

What real redaction is

Real redaction must make the covered content physically disappear. The most robust approach rasterizes any page with a redaction into an image and burns the black bars into the pixels — the page becomes a picture, the original text objects no longer exist, and copy/parse/OCR all come back empty.

The cost is that the page loses its searchable text layer. But a redacted file doesn't need to be searchable, so it's a worthwhile trade.

Don't forget to strip document metadata (author, timestamps) too, or identity info still leaks.

FAQ

Isn't a fully opaque black box enough?
No. Opacity only affects display; the underlying text objects remain in the file and can be copied and extracted.
How do I verify my redaction worked?
After export, select-all and copy in a PDF reader and search keywords to confirm nothing comes back; or run the fake-redaction detector.