1
有沒有辦法檢測這個頁面是否被bot訪問?我試過檢查$_SERVER['HTTP_USER_AGENT']
是否在數組中它工作正常。檢測一個機器人是否訪問過一個頁面
$bot = array("Slurp", "Scooter", "URL_Spider_SQL", "Googlebot", "Firefly", "WebBug", "WebFindBot", "crawler", "appie", "msnbot", "InfoSeek", "FAST", "Spade", "NationalDirectory",);
if (in_array($_SERVER['HTTP_USER_AGENT'], $bot)) {
return true;
}
else {
return false;
}
有沒有更好的和安全的方法來做到這一點? (除了必須輸入所有的機器人名稱?)我的方法和this有什麼區別?
除了另一個1)不是數組2)確保HTTP_USER_AGENT的值是小寫字母並與小寫值比較。就我個人而言,我會和你一起去,但添加strtolower方法,並將所有的蜘蛛/機器人添加爲小寫。 – Dale
現在只需要注意一點:依靠HTTP_USER_AGENT並不安全,因爲此字符串可以設置爲任何您想要的。還有很多可用的bot使用者名單。也許使用其中之一而不是建立自己的列表。 – Alex2php