Express.js에서 API rate limiting을 구현하려면 어떻게 하나요?
Express.js rate limiting 구현:
// 1. express-rate-limit (간단)const rateLimit = require("express-rate-limit");const limiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15분 max: 100, // 15분에 100요청 message: { error: "요청이 너무 많습니다. 잠시 후 다시 시도하세요." }, standardHeaders: true,});app.use("/api/", limiter);// 2. Redis 기반 (분산 환경)const RedisStore = require("rate-limit-redis");const limiter = rateLimit({ store: new RedisStore({ client: redisClient }), windowMs: 15 * 60 * 1000, max: 100,});// 3. 엔드포인트별 다른 제한const loginLimiter = rateLimit({ windowMs: 60000, max: 5 });app.post("/api/login", loginLimiter, loginHandler);
로그인 같은 민감한 엔드포인트는 더 엄격하게 제한하세요.
댓글 1
Express.js rate limiting 구현:
로그인 같은 민감한 엔드포인트는 더 엄격하게 제한하세요.