T
finnandClaude Opus 5.5 dc85c578a2 Protect against login CSRF without cookies for anonymous users
Anonymous users must not get cookies or session store entries, so a
CSRF token for /login is not possible. Instead, every unsafe request is
checked statelessly via Sec-Fetch-Site, falling back to Origin. Requests
without both headers are not from a browser and are accepted. The
expected origin comes from the new MAX_ORIGIN setting, which is required
outside of debug mode.

Further CSRF changes:
- Do not delete the CSRF token on a failed check. It added no security,
  but invalidated forms in open tabs and could be triggered cross-site.
- Treat HEAD and OPTIONS as safe methods.

Keep the login page free of sessions:
- Show login messages via ?msg=login_required|logout (fixed keys only)
  and the login error via the template context instead of flash().
- Only send the session deletion cookie if the client sent a cookie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 11:03:03 +00:00
2020-04-13 08:31:44 +02:00
2020-04-13 08:31:44 +02:00
2020-04-13 08:31:44 +02:00
2026-10-19 18:53:59 +02:00
2026-10-21 09:06:51 +00:00
2026-10-19 18:53:59 +02:00
2020-04-13 08:31:44 +02:00

MAX

A small little program to manage emails.

The proxy should add X-Real-IP to get a better logging.

Setup

Requirements: Docker, Make

Start with make run-dev

Configuration

  • MAX_ORIGIN (required in production): The public origin of MAX, e.g. https://max.finn.st
S
Description
No description provided
Readme MIT
1.2 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 70.9%
HTML 19.8%
CSS 4.4%
Dockerfile 2.9%
Shell 1%
Other 1%