[JavaScript] express-rate-limit 편

최예닮·2022년 12월 4일
0
post-thumbnail

오늘 우리는 한 IP가 request 숫자를 제한하는 것을 만들어보자고 이야기가 나왔다.
DDoS 공격에 대비하자는 것이다.

짜는것은 생각보다 어렵지 않았다. 우선 모듈을 설치해주자.

npm i express-rate-limit

그 다음 전역으로 선언해주고 함수를 추가해주자

const RateLimit = require("express-rate-limit");

apiLimiter = new RateLimit({
  windowMs: 60 * 1000, // 1분 간격
  max: 3, // windowMs동안 최대 호출 횟수
  handler(req, res) {
    // 제한 초과 시 콜백 함수
    res.status(this.statusCode).json({
      code: this.statusCode, // statusCode 기본값은 429
      message: "1분에 3번만 요청 할 수 있습니다.",
    });
  },
});

// 미들웨어 들어가는 경로
app.use("/", apiLimiter, [routes]);

간단하쥬 ?

자 그러면 한 IP당 req를 1분에 3번만 요청할 수 있다. 3번이상 요청하면 어떻게 될지 한번볼까?

저렇게 코드와 메세지를 볼 수 있다. 더이상 req를 없게 되었다 ! 크 적당히 조절해서 만들면 될거 같다. 이런 편리한 기능을 모듈 다운받고 작성하면 되다니... Node.js 최고 !!

profile
산을 오르려고 하는데 이제 주차장에 막 주차한 초보개발자

0개의 댓글