hsa-app/internal
Jean-Michel Tremblay 866bc175fb
All checks were successful
Build and Test / build-and-test (push) Successful in 38s
Security hardening: server-side session expiry + nosniff on files
1. Enforce the 12h session lifetime server-side in requireAuth (reject a
   session older than the TTL even if the sealed cookie is intact), so a
   leaked cookie value can't be replayed indefinitely. Shared sessionTTL
   const drives both the cookie MaxAge and the check.
2. Send X-Content-Type-Options: nosniff when serving user-uploaded
   receipt/attachment bytes, so the browser won't sniff past the declared
   (upload-time allowlisted) MIME type.

Update SPEC §2 and §6 accordingly; tests cover stale-session rejection.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-20 20:56:38 -04:00
..
auth Initial commit: HSA receipt tracker 2026-06-17 21:40:12 -04:00
backup Backups: ROOT/dbbackup, hsa_sqlite_backup_YYYY_MM_DD.db naming 2026-06-19 07:34:31 -04:00
classify AI classifier correction notes + misread review (AI tab) 2026-06-20 16:04:30 -04:00
config Backups: ROOT/dbbackup, hsa_sqlite_backup_YYYY_MM_DD.db naming 2026-06-19 07:34:31 -04:00
receipt Add receipt attachments captured at upload time (spec item 10) 2026-06-19 07:06:15 -04:00
storage AI classifier correction notes + misread review (AI tab) 2026-06-20 16:04:30 -04:00
web Security hardening: server-side session expiry + nosniff on files 2026-06-20 20:56:38 -04:00