docs: cookie-based preferences and access keys design (#30) #70

Merged
poslop merged 1 commits from issue-30-cookie-design into main 2026-09-09 14:27:15 +00:00
Owner

Design note for #30 — no implementation.

  • Catalogs the existing cookie surface (vwr, pw_, tok_) and extends the #34 HMAC unlock-cookie pattern rather than inventing a new scheme.
  • Preferences: single prefs JSON cookie (<256 B, server-validated allowlist), driven by #36's settings gear.
  • Access keys: opt-in extended pw_<id> with Max-Age capped by paste expiry (90-day ceiling, 24 h for burn pastes), ~30-paste eviction for the per-domain cookie budget, no delete authorization from access cookies.
  • Security accounting: HttpOnly does not stop fetch-based XSS exfiltration (stated honestly); CSP/XFO hardening debt from #34 should land with it; shared-machine and cookie-theft tradeoffs documented.
  • Recommendation: two separately reviewable pieces, prefs first.
Design note for #30 — no implementation. - Catalogs the existing cookie surface (vwr, pw_<id>, tok_<id>) and extends the #34 HMAC unlock-cookie pattern rather than inventing a new scheme. - Preferences: single `prefs` JSON cookie (<256 B, server-validated allowlist), driven by #36's settings gear. - Access keys: opt-in extended `pw_<id>` with Max-Age capped by paste expiry (90-day ceiling, 24 h for burn pastes), ~30-paste eviction for the per-domain cookie budget, no delete authorization from access cookies. - Security accounting: HttpOnly does not stop fetch-based XSS exfiltration (stated honestly); CSP/XFO hardening debt from #34 should land with it; shared-machine and cookie-theft tradeoffs documented. - Recommendation: two separately reviewable pieces, prefs first.
Author
Owner

Closes #30 (design portion; implementation tracked separately when scheduled).

Closes #30 (design portion; implementation tracked separately when scheduled).
poslop force-pushed issue-30-cookie-design from 07950e27ac to 5a2aa0f96d 2026-09-09 14:14:27 +00:00 Compare
poslop force-pushed issue-30-cookie-design from 5a2aa0f96d to 03bf327f6b 2026-09-09 14:14:38 +00:00 Compare
poslop added 1 commit 2026-09-09 14:14:51 +00:00
docs: design note for cookie-based preferences and access keys (#30)
CI / docker (pull_request) Skipped
CI / test (pull_request) Successful in 21s
5a2aa0f96d
poslop merged commit 8d0825ac09 into main 2026-09-09 14:27:15 +00:00
Sign in to join this conversation.