웹사이트 운영자들이 겪는 고질적인 문제 중 하나는 불필요하거나 악의적인 봇(bot) 트래픽입니다. 이러한 봇들은 서버 자원을 낭비하고, 데이터를 무단으로 수집하며, 심지어 보안 위협을 초래하기도 합니다. 최근 한 웹 개발자가 CDN(콘텐츠 전송 네트워크)과 같은 고비용 솔루션 없이도 HTTP 프로토콜, IP 대역, 클라이언트 신호 등 다양한 기술적 요소를 조합하여 대부분의 봇을 효과적으로 차단하는 방법을 상세히 공개했습니다.
제시된 방법들은 크게 여덟 가지로 나뉩니다. 첫째, HTTP/1.1을 사용하는 봇이 많다는 점을 이용해 HTTP/2.0만 허용하는 방식입니다. 구글봇(GoogleBot) 등 일부 검색 엔진도 차단될 수 있으나, 단순 크롤러를 줄이는 데 효과적입니다. 둘째, 데이터센터 IP 대역을 차단하여 클라우드 서버에서 동작하는 봇을 막는 방법입니다. 이는 VPN 사용자나 검색 엔진을 오탐할 위험이 있습니다. 셋째, 국가별 프록시, 토르(Tor), 악성 IP 목록을 활용해 블랙홀 라우팅을 설정하는 방식입니다. 넷째, User-Agent나 Sec-Fetch-Mode, Referer 등 HTTP 클라이언트 신호를 검사해 봇을 식별하고 차단합니다. 예를 들어, 'Curl', 'Wget' 같은 문자열이나 'Bot', 'GPT', 'LLM', 'Spider' 등이 포함된 User-Agent를 가진 요청을 걸러낼 수 있습니다.
다섯째, nftables를 이용해 TCP SYN 패킷의 윈도 크기(Window Size), MSS(Maximum Segment Size), TTL(Time To Live) 같은 TCP 특성을 분석하여 스캐너 봇을 차단합니다. 여섯째, X-Robots-Tag 헤더 등을 활용해 검색 엔진이나 특정 봇의 접근을 제어하는 방법도 있습니다. 마지막으로, 장기적인 대안으로는 TLS 지문(JA4) 탐지나 브로틀리(Brotli) 압축 콘텐츠만 제공하는 방식이 언급되었습니다. 이 모든 방법은 적용 전 충분한 로그 분석과 테스트가 필수적이며, 수익을 내는 서비스에는 신중하게 적용해야 합니다. 잘못된 설정은 정상적인 사용자나 검색 엔진의 접근을 막아 서비스에 치명적인 영향을 줄 수 있기 때문입니다.