Answer prose round 1: 0 🔴, 5 🟡 (0 misread); tighten the CSRF notes
CI / full-gate (push) Successful in 3m7s
CI / full-gate (push) Successful in 3m7s
This commit is contained in:
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user