fix: safeReturn для всех редиректов (security)

- ui/routes/auth.js: safeReturn() для returnTo в POST /login и /login-token
- src/routes/oidc.js: safeLocal() для oidcReturnTo в /callback
This commit is contained in:
2026-06-04 15:26:26 +03:00
parent 6edef60ed8
commit 8cbbe52316
3 changed files with 79 additions and 3 deletions
+3 -2
View File
@@ -15,6 +15,7 @@
*/
const { Router } = require('express');
const { safeReturn } = require('../../src/auth');
function createRouter({ auth, MOCK_USERS, authLimiter }) {
const router = Router();
@@ -61,7 +62,7 @@ function createRouter({ auth, MOCK_USERS, authLimiter }) {
companyName: user.companyName || user.clientId,
isAdmin: user.isAdmin || user.role === 'admin',
};
res.redirect(returnTo || '/');
res.redirect(safeReturn(returnTo) || '/');
});
// GET /login-token — редирект на /login (форма вставки токена там же)
@@ -130,7 +131,7 @@ function createRouter({ auth, MOCK_USERS, authLimiter }) {
isAdmin: activeClientId === (process.env.ADMIN_CLIENT_ID || 'WZ01112'),
};
}
return res.redirect(returnTo || '/');
return res.redirect(safeReturn(returnTo) || '/');
}
// ── Вход по clientId (отладка, mock) ───────────────────────────────────