Security
What is implemented, what it does not cover, and how to report a problem.
How a note is protected
- Your browser generates a random 256-bit key and encrypts the note with AES-256-GCM (Web Crypto) before it is uploaded. A fresh random nonce is used for every save.
- The key is carried in the link fragment (
#k=…). Browsers do not send fragments to servers. - The share link is read-only. Editing needs a separate random 256-bit edit capability; the server stores only its SHA-256 hash and compares it in constant time.
- Notes are plain text. They are shown with text-only DOM APIs, so pasted HTML or scripts appear as harmless text.
- Burn after reading never triggers on a plain page load or link preview. The note is destroyed only when the reader presses Reveal note, atomically, so it can be revealed once.
- Strict Content-Security-Policy, no third-party scripts, no cookies,
Referrer-Policy: no-referrer, andno-storecaching withnoindexfor notes. - Rate limits, size limits, mandatory expiry and a 7-day maximum lifetime.
What this does not do
- Anyone who has the full link can read the note. Share it only with people you trust.
- It cannot protect a note from a compromised device, browser extension or screen capture.
- The server can see that a note exists, its approximate size and its timing.
- Do not store passwords or recovery keys here.
Reporting a vulnerability
No security contact has been published for this deployment yet. Please do not disclose vulnerabilities publicly before the operator can respond.