봇 차단 정책
봇은 3가지로 분류해 차등 적용합니 다. 실제 차단 집행은 엣지(Cloudflare) 가 담당하고, robots.txt 와 애플리케이션 미들웨어는 표명/백스톱 입니다(User-Agent 는 위조될 수 있습니다).
| 분류 | 예시 | 정책 | 엣지 집행 | 앱 백스톱 |
|---|---|---|---|---|
| 포털 검색봇 | Googlebot, Bingbot, NaverBot(Yeti), Daum | 허용 | Verified Bots allowlist | 허용 |
| AI 학습 크롤러 | GPTBot, ClaudeBot, CCBot, Google-Extended, PerplexityBot 등 | 차단(기본) | "Block AI bots" | 미들웨어 403 + robots.txt |
| 미확인/악성 크롤러 | 위장 UA, 비정상 빈도 | 차단/챌린지 | Bot Fight Mode + WAF | 라우트 throttle |
AI 크롤러를 기본 차단하는 이유: 자체 저작 콘텐츠(노트·번역·정의 등)를 무단 AI 학습으로부터 보호하기 위함입니다. 검색 노출이 더 중요한 사이트는 비활성으로 둘 수 있습니다.
1) 엣지(Cloudflare) 설정 — 권장 1차선
CDN 뒤에 사이트를 두고(권장) 대시보드에서 설정합니다.
- Security → Bots
- Bot Fight Mode (또는 Super Bot Fight Mode) 활성화
- Block AI bots / Block AI Scrapers and Crawlers 활성화
- Verified Bots 는 허용 유지(포털 검색봇)
- Security → WAF → Rate limiting rules
- 동일 IP 의 과도한 요청(예:
/분당 N회 초과)에 challenge/block
- 동일 IP 의 과도한 요청(예:
- (선택) Custom rules — 특정 ASN/UA 차단
2) robots.txt — 정책 표명(자율 준수)
배포본 public/robots.txt 에 AI 크롤러를 Disallow 로 명시합니다(포털봇은 기본 허용). 준수는 자율이므로 단독으로는 차단력이 없으며, 위 엣지 설정과 함께 사용합니다.
3) 애플리케이션 백스톱 — 옵트인
robots.txt 를 무시하는 정직한 AI 봇 UA 를 애플리케이션에서 403 으로 차단하는 백스톱입니다. 기본 비활성 이며, 활성화해도 포털 검색봇은 허용됩니다.
# .env
CORE_BOT_POLICY_ENABLED=true # 봇 정책 백스톱 활성화
CORE_BOT_BLOCK_AI=true # AI 크롤러 UA 차단(기본 true)
차단/허용 대상 UA 목록은 설정에서 조정할 수 있습니다(core.security.bot_policy.ai_bot_user_agents, allow_verified_bots).
한계: User-Agent 는 위조가 쉽습니다. 앱 백스톱은 보조 수단이며, 신뢰할 수 있는 차단은 엣지에서 이뤄집니다.