refactor: csp.js exports CSP_DIRECTIVES, helmet applies them in one call

This commit is contained in:
2026-05-30 15:37:32 +03:00
parent 695264e7b4
commit b6e8f31cc6
2 changed files with 26 additions and 38 deletions
+4 -4
View File
@@ -30,7 +30,7 @@ const { MOCK_USERS, backUrl } = require('./src/config');
const { mutationLimiter, exportLimiter } = require('./src/middleware/rateLimit');
const { initCsrf } = require('./src/middleware/csrf');
const { createSessionMiddleware } = require('./src/middleware/session');
const { cspMiddleware } = require('./src/middleware/csp');
const { CSP_DIRECTIVES } = require('./src/middleware/csp');
const app = express();
const PORT = process.env.PORT || 3000;
@@ -39,9 +39,9 @@ app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
// ── Безопасность HTTP-заголовков ───────────────────────────────────────────────
// helmet выставляет базовые заголовки; CSP вынесен в src/middleware/csp.js.
app.use(helmet({ contentSecurityPolicy: false }));
app.use(cspMiddleware);
// helmet выставляет все security-заголовки одним вызовом, включая CSP.
// Директивы CSP вынесены в src/middleware/csp.js.
app.use(helmet({ contentSecurityPolicy: { directives: CSP_DIRECTIVES } }));
// За reverse-proxy (nginx/k8s ingress) — доверяем первому хопу для secure cookies.
if (process.env.NODE_ENV === 'production') app.set('trust proxy', 1);