Block a user
Exclude password-protected pastes from public listings (#65)
docs: cookie-based preferences and access keys design (#30)
[pentest] Burn-after-read counter race: single-read paste can be fetched multiple times concurrently
Duplicate of #58 (burn-after-read race, found in the #34 sweep and already assigned to a fix branch). Keeping #58 as the tracking issue. The pentest repro confirms the MED finding from #34.
[pentest] Burn-after-read counter race: single-read paste can be fetched multiple times concurrently
Security: add security headers middleware (CSP, X-Frame-Options, Referrer-Policy)
Pentest (#67) confirms the missing headers on this deployment. Note: the HSTS and Host-header-reflecting HTTP->HTTPS redirect parts of #67 are Traefik/infra-level, not app-level - handle those in…
FUTURE: file/image attachments storage backend (S3?)
Design doc: poslop/palette#69 (docs/design/attachments-storage.md)
FUTURE: storage backend choice (SQLite/Postgres/Redis)
Design doc: poslop/palette#69 (docs/design/attachments-storage.md)
[pentest] Burn-after-read counter race: single-read paste can be fetched multiple times concurrently
docs: attachments & storage backend design (#38, #31)
[pentest] Admin key endpoint has no rate limiting or lockout (offline brute force possible)
[pentest] Missing security headers and no HSTS; HTTP->HTTPS redirect reflects arbitrary Host header
[pentest] Input validation gaps: negative/huge content accepted, expires_at ignored, limit=0 ignored