feat: security audit fixes
This commit is contained in:
@@ -28,6 +28,15 @@ export function csrfMiddleware(req: Request, res: Response, next: NextFunction):
|
||||
return;
|
||||
}
|
||||
|
||||
// Bearer-auth (Authorization header, no access_token cookie) — CSRF не нужен.
|
||||
// Browser-based CSRF атаки требуют auto-sent cookie. Если auth идёт через explicit
|
||||
// Authorization header, attacker не может его выставить cross-origin (CORS preflight блокирует).
|
||||
// Это позволяет API-клиентам (Swagger UI, Postman, curl, мобилке) работать без CSRF.
|
||||
if (!req.cookies?.access_token && req.headers.authorization) {
|
||||
next();
|
||||
return;
|
||||
}
|
||||
|
||||
// CSRF включён, но секрет не загружен → fail-secure 503.
|
||||
if (!isCsrfConfigured()) {
|
||||
logger.error('CSRF check unavailable: secret not loaded — rejecting mutating request');
|
||||
|
||||
Reference in New Issue
Block a user