스크립트에서 크롤러 접속 차단

Caesars·2021년 7월 29일
1

JS

목록 보기
2/8

상황

특정 user가 접속 시에 자사 서버의 부하가 급속히 증가하는 현상이 있었습니다. 해당 user의 userAgent 값을 확인해보니 실제 사용자가 아닌 웹 크롤러로 보여서 차단 기능을 추가하기로 했습니다.

userAgent : "AdsBot-Google (+http://www.google.com/adsbot.html)",
userAgent : "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.97 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

조치

특정 userAgent 값을 가졌을 경우 서버를 호출하지 않고 스크립트에서 중단하도록 수정했습니다.

function isBot () {
    return navigator.userAgent.match(/AdsBot|Googlebot/i);
}

테스트


크롬 확장도구 userAgentSwitcher를 사용하여 userAgent 값에 AdsBot 추가 후 테스트를 진행했습니다. 서버를 호출하지 않고 스크립트에서 중단되는 것을 확인했지만 userAgent 값은 쉽게 변환이 가능하므로 추가적인 대책이 필요할듯 보입니다.

참고

Google 크롤러 개요

profile
잊기전에 저장

0개의 댓글