<?php
// 獲取引導(dǎo)用戶訪問當(dāng)前頁面的頁面的 URL
$referer = isset($_SERVER[‘HTTP_REFERER’]) ? $_SERVER[‘HTTP_REFERER’] : ”;
// 檢查 referer 是否來自360
$is_from_360 = false;
if (strpos($referer, ‘#’) !== false || strpos($referer, ‘so.#’) !== false) {
$is_from_360 = true;
}
// 如果來自360,則進(jìn)行屏蔽處理
if ($is_from_360) {
// 設(shè)置 HTTP 狀態(tài)碼為 403 Forbidden
header(‘HTTP/1.1 403 Forbidden’);
// 輸出一條消息并終止腳本執(zhí)行
echo ‘訪問被禁止:您來自360的跳轉(zhuǎn)訪問不被允許。’;
exit();
}
// 如果不是來自360,繼續(xù)正常執(zhí)行你的腳本
echo ‘歡迎訪問!’;
?>
代碼說明
-
?獲取 Referer?:
- 使用?
$_SERVER['HTTP_REFERER']
?獲取引導(dǎo)用戶訪問當(dāng)前頁面的頁面的 URL。
- 使用?
-
?檢查 Referer?:
- 使用?
strpos
?函數(shù)檢查 Referer 是否包含360的域名,如?#
?或?so.#
。
- 使用?
-
?處理屏蔽邏輯?:
- 如果檢測到 Referer 來自360,則設(shè)置 HTTP 狀態(tài)碼為 403 并輸出一條禁止訪問的消息,然后終止腳本執(zhí)行。
-
?正常訪問?:
- 如果 Referer 不是來自360,則繼續(xù)執(zhí)行后續(xù)腳本。
注意事項(xiàng)
- 和之前提到的百度跳轉(zhuǎn)訪問屏蔽一樣,
HTTP_REFERER
?字段可能不會被所有瀏覽器或代理發(fā)送,或被用戶或代理修改,因此這種方法有一定的局限性。 - 對于更復(fù)雜的訪問控制需求,你可能需要結(jié)合其他技術(shù),如 IP 地址過濾、用戶認(rèn)證等。
- 此代碼只是基本的屏蔽實(shí)現(xiàn),具體應(yīng)用中可能需要根據(jù)實(shí)際情況進(jìn)行調(diào)整。
使用京策盾高防CDN可以完美杜絕這個問題,免去修改代碼的煩惱