Answer prose round 1: 0 🔴, 5 🟡 (0 misread); tighten the CSRF notes
CI / full-gate (push) Successful in 3m7s

This commit is contained in:
2026-10-30 21:32:56 +01:00
parent 3c5c0c911c
commit 9370fb36f2
+3 -4
View File
@@ -221,10 +221,9 @@ Revisit only if the stated reason stops holding.
adds you to any group, including one holding every permission; `users:write` mints a recovery code adds you to any group, including one holding every permission; `users:write` mints a recovery code
for any account. The containment the split buys is real on the **read** half only (`users:read` is for any account. The containment the split buys is real on the **read** half only (`users:read` is
a safe helpdesk grant). Don't let the per-resource naming imply otherwise in docs. a safe helpdesk grant). Don't let the per-resource naming imply otherwise in docs.
- **The CSRF token is deliberately unbound to the session** (`src/auth/csrf.ts`): it is a signed - **The CSRF token is deliberately unbound to the session** (`src/auth/csrf.ts`; README → Security
double-submit token, so an attacker who can write cookies on the origin can fix a token they know. model): the usual cost of a signed double-submit token, covered by `SameSite=Lax` and HSTS.
Accepted — standard for the unbound form, and `SameSite=Lax` plus HSTS cover it. **Valid while the **Valid while the session cookie stays `SameSite=Lax` or stricter.**
session cookie stays `SameSite=Lax` or stricter.**
- **Plainpages says "user" everywhere; Ory's word is "identity".** House style, not a renamed - **Plainpages says "user" everywhere; Ory's word is "identity".** House style, not a renamed
concept. The single exception is the `Identity` DTO in `src/auth/kratos-admin.ts`, which mirrors concept. The single exception is the `Identity` DTO in `src/auth/kratos-admin.ts`, which mirrors
Kratos' wire shape — don't rename it. Kratos' wire shape — don't rename it.