Rate Limiting Rules로 로그인·검색 남용 막기

사이트에 갑자기 요청이 몰려서 느려진 적 있나요? 로그인 폼에 초당 수십 번씩 시도가 들어오거나, 검색창에 자동화 트래픽이 몰리는 상황이라면 규칙 하나로는 부족합니다. 이럴 때 쓰는 게 Rate Limiting(속도 제한)입니다.
안녕하세요, 코딩하는 안다형입니다. 이 글에서는 Cloudflare Rate Limiting Rules를 무료 플랜 기준으로 어떻게 설정하는지 정리했습니다.
3줄 요약
- Rate Limiting은 "같은 요청이 짧은 시간에 몇 번 왔는지"를 기준으로 차단합니다.
- 무료 플랜도 Rate Limiting Rules를 쓸 수 있지만 개수 제한이 있습니다.
- 로그인, 검색, API 경로처럼 반복 요청이 위험한 곳에 우선 적용하세요.
Rate Limiting이 일반 방화벽 규칙과 다른 점
일반 Custom Rules는 요청 하나하나를 조건으로 판단합니다. 반면 Rate Limiting은 시간과 횟수를 함께 봅니다. "10초 안에 20번 이상 요청한 같은 IP"처럼 패턴으로 판단하기 때문에, 한 번의 요청만 봐서는 정상인지 공격인지 구분할 수 없는 상황에 적합합니다.
설정 위치와 기본 구조
대시보드에서 Security, Rate limiting rules로 들어가면 규칙을 만들 수 있습니다. 기본 구조는 세 가지입니다.
- 대상 요청: 어떤 경로, 어떤 조건의 요청을 셀 것인지
- 기준: 몇 초 동안 몇 번 이상이면 걸리는지
- 조치: Block, Managed Challenge, JS Challenge 중 선택
실전 예시 세 가지
1. 로그인 폼 무차별 대입 막기
경로가 /login이고 메서드가 POST인 요청을 대상으로, 60초에 5회 초과 시 Managed Challenge를 걸면 됩니다. 정상 사용자가 비밀번호를 5번 이상 연속으로 틀리는 일은 드물기 때문에 오탐이 적습니다.
2. 검색 API 남용 막기
경로가 /search 또는 /api/search인 요청을 대상으로, 10초에 10회 초과 시 Block으로 설정합니다. 검색은 서버 부담이 큰 기능이라 짧은 시간에 몰리면 사이트 전체가 느려질 수 있습니다.
3. 댓글/문의 폼 스팸 줄이기
경로가 /comment인 POST 요청을 대상으로, 5분에 3회 초과 시 Managed Challenge를 겁니다. 스팸 봇은 짧은 시간에 여러 글에 반복 등록을 시도하는 경우가 많습니다.
Rate Limiting 조치 방식 비교표
Block은 즉시 차단하지만 오탐 시 정상 사용자도 막히니 확실한 경로에만 쓰세요. Managed Challenge는 사람인지 확인 후 통과시키므로 로그인·댓글처럼 애매한 경로에 적합합니다. JS Challenge는 가장 가볍고 일반 봇 스크립트 정도만 걸러냅니다.
이건 하지 마세요
- 기준을 너무 빡빡하게 잡기: 1초에 2회처럼 짧게 잡으면 페이지 새로고침만 해도 걸립니다.
- 모든 경로에 동일 기준 적용: 이미지, CSS 요청까지 포함하면 정상적인 페이지 로딩도 걸릴 수 있습니다.
- 테스트 없이 바로 Block: 처음에는 Managed Challenge로 두고 며칠 지켜본 뒤 올리세요.
자주 묻는 질문
무료 플랜에서 몇 개까지 만들 수 있나요?
플랜마다 제한 개수가 다르며 시간이 지나며 정책이 바뀔 수 있으니, 대시보드의 Rate limiting rules 화면에서 표시되는 현재 한도를 직접 확인하는 것이 가장 정확합니다.
Custom Rules랑 같이 써도 되나요?
네, 오히려 같이 쓰는 게 일반적입니다. Custom Rules로 확실한 공격 패턴을 먼저 걸러내고, 남은 트래픽에 Rate Limiting으로 반복 요청을 잡는 식입니다.
정상 사용자가 걸렸다고 하면 어떻게 하나요?
기준값(횟수, 시간)을 완화하거나 조치를 Block에서 Managed Challenge로 낮추세요. Security Events에서 어떤 규칙에 걸렸는지 확인할 수 있습니다.
API 서버에도 적용할 수 있나요?
네. API 경로에 특히 유용합니다. 다만 정상적인 앱 트래픽 패턴을 먼저 파악한 뒤 기준을 잡아야 앱 사용자가 차단되는 일을 막을 수 있습니다.
마무리
Rate Limiting은 "한 번의 요청이 위험한가"가 아니라 "반복되는 패턴이 위험한가"를 보는 도구입니다. 로그인, 검색, 폼 제출처럼 반복 공격에 취약한 경로부터 하나씩 적용해 보세요.
함께 보면 좋은 글
'클라우드플레어' 카테고리의 다른 글
| Cloudflare Turnstile로 무료 캡차 붙이는 법 (0) | 2026.09.23 |
|---|---|
| Cloudflare Tunnel 기초, 포트 안 열고 서버 공개하기 (0) | 2026.09.23 |
| Custom Rules 표현식(Expression) 문법 완전 정복 (0) | 2026.09.19 |
| 국가 · IP · User-Agent 기반 차단 규칙 만들기 (1) | 2026.09.19 |
| Page Rules와 신규 Rules(Redirect·Cache·Configuration) 차이 (0) | 2026.09.17 |