Javascript/Node.js

[ Node.js ] - 서버 DDos 공격 막기

algml0703 2022. 6. 2. 13:52
반응형

express-rate-limit

과도한 요청으로 인해 서버에 과부하를 주는 것을 방지하기 위해 사용하는 라이브러리이다.

next에서 express-rate-limit 사용하기 -> 2022.07.26 - [Javascript/Next.js] - [ Next.js ] - next api에서 express-rate-limit 사용하기

사용밥법

npm install express-rate-limit

 

기본 설정

import rateLimit from 'express-rate-limit';

const limiter = rateLimit({
	windowMs: 1000 , //1초 ... 15 * 60 * 1000 15분
	max: 1,
	standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
	legacyHeaders: false, // Disable the `X-RateLimit-*` headers
    message: 'Too many accounts created from this IP'
});

export {
	limiter
}

사용하려는 위치에 해당 모듈을 불러와 사용한다. 

위의 코드는 1초에 1번까지 api 요청이 허용된다.

ex) 계속해서 로그인 시도를 하는 경우

import { Router } from 'express';
import { limiter } from './limit';

const router = Router();

router.get('/login', limiter, (req, res, next)=>{
	/*
    	아이디와 비밀번호에 대한 검증 코드...
    */
    res.json({result: 'Success'})
});

 

반응형