feat: CSP enabled via src/middleware/csp.js (unsafe-inline, blocks external/frame/object)

This commit is contained in:
2026-05-30 15:36:22 +03:00
parent f4c9983612
commit 695264e7b4
2 changed files with 54 additions and 2 deletions
+3 -2
View File
@@ -30,6 +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 app = express();
const PORT = process.env.PORT || 3000;
@@ -38,9 +39,9 @@ app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));
// ── Безопасность HTTP-заголовков ───────────────────────────────────────────────
// helmet выставляет: X-Content-Type-Options, X-Frame-Options, Strict-Transport-Security,
// Referrer-Policy и пр. CSP отключён явно — EJS использует inline-стили/скрипты.
// helmet выставляет базовые заголовки; CSP вынесен в src/middleware/csp.js.
app.use(helmet({ contentSecurityPolicy: false }));
app.use(cspMiddleware);
// За reverse-proxy (nginx/k8s ingress) — доверяем первому хопу для secure cookies.
if (process.env.NODE_ENV === 'production') app.set('trust proxy', 1);