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.