Rate Limiting
네트워크 트래픽을 제한하는 전략이다. 특정 시간대 내에서 누군가 작업을 반복할 수 있는 빈도(예: 계정 로그인 시도)에 상한 설정을한다.
웹 서버에 대한 부담을 줄일 수 있다.
Rate Limiting 구조
Rate Limiting은 웹 서버 자체에서 실행되는 것이 아니라 응용 프로그램 내에서 실행된다.
일반적으로 Rate Limiting은 요청 소스인 IP 주소 추적과 각 요청 간의 경과 시간 추적을 기반으로 한다.
Rate Limiting 솔루션은 각 IP 주소의 요청 사이 시간을 측정하고, 지정된 시간 프레임의 요청 수를 측정한다.
너무 많은 경우 일정 시간 동안 해당 IP 주소의 요청에 응답하지 않는다.
기본적으로 속도 제한된 애플리케이션은 고속 요청을 하는 사용자에게 "천천히 하라고" 말하는 것과 같다.
사용자 로그인에서 Rate Limiting이 어떻게 작동할까?
한 시간에 3~4번만 로그인 시도 가능하게 설정하면, 비밀번호를 맞추기 위해 무작위로 여러 번 시도하는 무차별 대입 공격을 막을 수 있다.
- 동일한 IP에서 로그인 시도가 많으면 제한
- 특정 사용자 계정에 대해 시도가 많으면 제한
내용은 계속 추가해야될듯
'Programming👩🏻💻' 카테고리의 다른 글
[FastAPI] - SQLAlchemy, Postgresql 데이터 베이스 연동 시도 과정 (1) | 2024.12.15 |
---|---|
[SQLAlchemy] - 개념정리 및 입문하기 (0) | 2024.12.15 |
[Swagger] drf-spectacular로 REST API 문서 자동 생성 (1) | 2024.10.11 |
React 벼락치기 (1) | 2024.09.22 |
MAVEN (0) | 2021.12.03 |