Express.js에서 속도 제한 및 속도 저하를 설정하는 방법

원래 출판here at xtrp.io, 컴퓨터 과학 및 거의 모든 프로그래밍에 대한 제 블로그입니다.

속도 제한은 스팸 요청을 제거하기 위해 서버에 대한 반복 요청을 방지하는 프로세스입니다. 일반적으로 분당 서버에 대한 요청 200개와 같은 제한이 설정되며 해당 제한을 초과하는 모든 IP 주소는 일정 기간 동안 요청을 할 수 없도록 차단됩니다.



Rate slowing down은 너무 많은 요청을 보낸 IP에 대한 서버 응답을 늦추는 프로세스입니다. 예를 들어 속도 저하 제한을 분당 요청 200개로 설정할 수 있으며 제한을 초과하는 각 요청에 대해 응답 시간을 2.5초 더 추가할 수 있습니다.



스팸 요청을 방지하는 이 두 가지 일반적인 방법은 많은 프로젝트의 서버 또는 API에 필수적인 기능일 수 있습니다. 이 기사에서는 Node에서 Express.js를 사용하여 속도 제한 및 속도 저하를 수행하는 방법을 설명하고 이 두 기술의 사용 사례 및 차이점에 대해 설명합니다.

Express의 비율 제한


  • express-rate-limit 패키지를 설치합니다.

  • npm install express-rate-limit
    


    또는:

    yarn add express-rate-limit
    


  • 속도 제한을 설정하고 Express 앱에서 사용

  • const rateLimiter = require("express-rate-limit"); 
    
    app.set("trust proxy", 1); // use this line if you’re using a proxy (Heroku, DigitalOcean, etc.); so req IPs are the client’s IP, not the IP of the proxy service
    
    // set a rate limit of 200 reqs/min
    const rateLimit = rateLimiter({
        max: 200 // the rate limit in reqs
        windowMs: 1 * 60 * 1000, // time where limit applies
    });
    
    // use the rate limit in your Express app
    app.use(rateLimit);
    


    익스프레스 속도 저하


  • express-slow-down 패키지를 설치합니다.

  • npm install express-slow-down
    


    또는:

    yarn add express-slow-down
    


  • 속도 저하를 구성하고 Express 앱에서 사용

  • const rateSpeedLimiter = require("express-slow-down"); 
    
    app.set("trust proxy", 1); // use this line if you’re using a proxy (Heroku, DigitalOcean, etc.); so req IPs are the client’s IP, not the IP of the proxy service
    
    // allow 200 reqs/min, reqs after that are delayed by 2500ms
    const rateSpeedLimit = rateSpeedLimiter({
        delayAfter: 200 // slow down limit (in reqs)
        windowMs: 1 * 60 * 1000, // time where limit applies
        delayMs: 2500 // slow down time
    });
    
    // use the rate slow down in your Express app
    app.use(rateSpeedLimit);
    


    속도 제한 대 속도 감속



    속도 제한의 경우: 첫째, 속도 제한은 일반적으로 특히 프로덕션에서 더 일반적입니다. 효과적인 속도 제한이 선택되면 속도 제한은 악의적이고 원치 않는 요청을 차단하는 명확한 방법입니다. 속도 제한은 공용 API에도 유용합니다. API를 제공하는 사람들은 종종 API 키가 없는 사용자 또는 특정 수의 요청에 대해 요금을 지불하지 않은 사용자에게 속도 제한을 제공합니다.

    속도 저하 사례: 속도 저하는 스팸 요청을 방지하는 보다 관대한 접근 방식입니다. 특정 사용자를 완전히 차단하는 것이 이상적이지 않거나 검색 엔진 스크레이퍼 및 스파이더와 같이 속도 제한을 초과할 수 있는 매우 드문 경우에 더 효과적일 수 있습니다.

    전반적으로 속도 제한은 스팸 요청을 방지하는 더 엄격하고 일반적인 방법인 반면, 속도 감속은 보다 관대한 접근 방식을 제공합니다.

    결론



    이 기사가 Express.js에서 속도 제한 및 속도 저하를 구현하는 방법과 두 방법의 사용 사례를 이해하는 데 도움이 되기를 바랍니다.

    스크롤해주셔서 감사합니다.

    이 게시물을 즐겼습니까? 체크아웃my blog at xtrp.io .

    — 가브리엘 로무알도, 2021년 1월 11일

    좋은 웹페이지 즐겨찾기