security: round 3 hardening (CSRF double-submit, TRX MITM, container hardening)
This commit is contained in:
@@ -127,8 +127,13 @@ export async function verifyAccessToken(token: string): Promise<AuthContext> {
|
||||
throw Object.assign(new Error('Invalid token type'), { status: 401 });
|
||||
}
|
||||
|
||||
if (!payload.sub || !payload.sid) {
|
||||
throw Object.assign(new Error('Missing token claims'), { status: 401 });
|
||||
// Строгая валидация sub/sid — иначе number/__proto__/10MB строки попадают в PG / в req.auth.
|
||||
const SUB_RE = /^[A-Za-z0-9_-]{1,64}$/;
|
||||
if (typeof payload.sub !== 'string' || !SUB_RE.test(payload.sub)) {
|
||||
throw Object.assign(new Error('Invalid sub claim'), { status: 401 });
|
||||
}
|
||||
if (typeof payload.sid !== 'string' || !SUB_RE.test(payload.sid)) {
|
||||
throw Object.assign(new Error('Invalid sid claim'), { status: 401 });
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user