콘텐츠로 이동

10. 봇과 어뷰즈는 기본값

출시하고 며칠 뒤 로그를 보니 트래픽 대부분이 스캐너다. 로그인 엔드포인트에는 비밀번호 대입 시도가, 문의 폼에는 스팸이, API에는 누군가의 무한 루프 스크립트가 붙어 있다. 막을 수단을 하나도 안 만들어놔서 서버 자원과 과금이 남의 봇을 위해 쓰이고 있다.

공개 인터넷에 열린 것은 사람이 아니라 봇이 먼저 방문한다. 비용이 발생하거나 부작용이 있는 모든 엔드포인트에는 속도 제한이 기본값이다.

  • 인증 시도, 발송(메일·문자), 가입, 검색처럼 비싸거나 악용 가능한 엔드포인트부터 레이트 리밋을 건다. IP 기준이면 충분히 시작할 수 있다.
  • CDN/플랫폼의 방화벽(WAF)과 관리형 봇 차단 규칙이 있으면 켠다 — 직접 만들기 전에 켜는 것부터.
  • 공개 폼에는 스팸 방어를 넣는다. 사람 검증(터널스타일 챌린지)이나 허니팟 필드 같은 가벼운 것부터.
  • 크롤링당하고 싶지 않은 콘텐츠가 있다면 robots.txt는 신사협정일 뿐이라는 것을 안다 — 진짜 막으려면 인증 뒤로 넣거나 WAF 규칙으로.
  • 레이트 리밋 응답(429)이 정상 사용자에게 오작동하지 않는지 한 번 확인한다 — 한 사무실(같은 IP)의 여러 사용자 같은 케이스.
  • 인증·발송·가입 엔드포인트에 레이트 리밋이 있다
  • 플랫폼 WAF/봇 차단 규칙을 검토하고 켰다
  • 공개 폼에 스팸 방어가 있다
  • 정상 사용자가 429에 걸리는 경계 케이스를 확인했다