intermediate

Express security middleware

Используйте headers, CORS, cookies, rate limits, body limits, logging redaction и proxy trust осознанно в Express services.

Security middleware укрепляет HTTP surface: Helmet задаёт security headers, CORS ограничивает browser origins, rate limiters сдерживают abuse, `trust proxy` — корректный client IP за load balancers.

					app.set('trust proxy', 1);
app.use(helmet());
app.use(cors({ origin: allowedOrigins, credentials: true }));
app.use('/api', rateLimit({ windowMs: 60_000, max: 100 }));
app.use(cookieParser());
app.use(express.json({ limit: '100kb' }));
				

Флаги cookie (`httpOnly`, `secure`, `sameSite`) защищают session tokens. Редактируйте secrets в request logs. Лимиты body против memory exhaustion. CORS явно — wildcard с credentials недопустим.

На интервью: какие headers ставит Helmet и зачем, когда нужен `trust proxy`, rate limiting для authenticated vs anonymous traffic.

Типовые ошибки: CORS винят frontend, логирование Authorization, `trust proxy` без понимания поддельного `X-Forwarded-For`.

Компромисс — между простотой, производительностью, безопасностью и эксплуатацией: назовите, что оптимизировали и какую цену приняли.

Чеклист:

  • Helmet и явная CORS policy.
  • Security flags для session cookies.
  • Rate-limit на sensitive и auth endpoints.
  • trust proxy только за известными proxies.