블로그 사이트를 새로 개발하고 오픈한뒤로 꾸준히 봇들의 접속 로그가 확인이 되고 있다.
다만 로그상 보면 잡히지 않는 봇들이 너무 많은것같아 기존 함수를 좀더 보완해서
ua 에 bot 을 포함하여 전부 차단해 버렸다.
뭐 정상적인 봇이라고 하지만 Yeti 나 bingbot 같은경우 디도스 공격처럼 접속하기때문에
반드시 트래픽을 잘 확인해 봐야한다.
접속한 UuserAgent 가 로봇인지 체크하는 함수 예제 |
function checkRobot($ua){
if(empty($ua)){ $ua = $_SERVER['HTTP_USER_AGENT']; }
$list = array(
"Yeti",
"YandexBot",
"Googlebot",
"Cowbot",
"NaverBot",
"Daum",
"Daumoa",
"TechnoratiSnoop",
"Allblog\.net",
"CazoodleBot",
"nhn\/1noon",
"Feedfetcher\-Google",
"Yahoo\! Slurp",
"msnbot",
"bingbot",
"MSNBot",
"Technoratibot",
"sproose",
"CazoodleBot",
"ONNET\-OPENAPI",
"UCLA CS Dept",
"Snapbot",
"DAUM RSS Robot",
"RMOM",
"S20 Wing",
"FeedBurner",
"xMind",
"openmaru feed aggregator",
"ColFeed",
"MJ12bot",
"Twiceler",
"ia_archiver",
"BingPreview", // 2022-02-06 추가
"NetcraftSurveyAgent", // 2022-02-06 추가
"Bot", // 2022-03-28 추가
"bot", // 2022-03-28 추가
);
$check = "/(".implode("|",$list).")/";
if(preg_match($check, $_SERVER['HTTP_USER_AGENT'])){
return true;;
}else{
return false;
}
}
$botchk = checkRobot(); // true or false