如何使用HTTP Referer

你可以用引用過程來做的事情

您在網站上看到的信息只是這些網站在從網絡服務器傳輸到個人瀏覽器時傳輸的一部分數據,反之亦然。 在幕後也有相當數量的數據傳輸 - 如果你知道如何訪問這些數據,你可能能夠以有趣和有用的方式使用它! 在本文中,我們將看看在這個過程中傳輸的一個特定的數據片段 - HTTP引用器。

什麼是HTTP Referer?

HTTP referer是由Web瀏覽器傳遞給服務器的數據,告訴你讀者在進入此頁面之前所處的頁面。 這些信息可以在您的網站上使用,以提供額外的幫助,為目標用戶創建特殊優惠,將客戶重定向到相關頁面和內容,甚至阻止訪問者進入您的網站。 您還可以使用JavaScript,PHP或ASP等腳本語言來閱讀和評估引薦來源信息。

使用PHP,JavaScript和ASP收集Referer信息

那麼你如何收集這個HTTP引用數據呢? 以下是您可以使用的一些方法:

PHP在一個名為HTTP_REFERER的系統變量中存儲引用者信息。 要在PHP頁面上顯示引用者,你可以寫:

if(isset($ _ SERVER ['HTTP_REFERER'])){
echo $ _SERVER ['HTTP_REFERER'];
}

這將檢查變量是否有值,然後將其打印到屏幕上。 而不是迴聲$ _SERVER ['HTTP_REFERER']; 你會放置腳本行來檢查各種查閱者。

JavaScript使用DOM來讀取引用者。 就像使用PHP一樣,您應該檢查以確保引用者俱有價值。 但是,如果要操縱該值,則應首先將其設置為變量。 下面介紹如何使用JavaScript在頁面上顯示引用者。 請注意,DOM使用引薦來源的替代拼寫,在其中添加一個額外的“r”:

if(document.referrer){
var myReferer = document.referrer;
文件撰寫(myReferer);
}

然後,您可以在變量為myReferer的腳本中使用引用者。

ASP和PHP一樣,將引用者設置為系統變量。 然後你可以收集這樣的信息:

if(Request.ServerVariables(“HTTP_REFERER”)){
Dim myReferer = Request.ServerVariables(“HTTP_REFERER”)
的Response.Write(myReferer)
}

您可以使用變量myReferer根據需要調整腳本。

一旦你有了Referer,你可以用它做什麼?

所以獲取數據是第1步。你如何去取決於你的具體網站。 當然,下一步是找到使用這些信息的方法。

一旦你有了引用者數據,你可以用它來以多種方式編寫你的網站腳本。 你可以做的一件簡單的事情就是發布你認為訪問者來自哪裡。 無可否認,這很無聊,但如果你需要運行一些測試,那可能是一個很好的入門點。

什麼是更有趣的例子是,當你使用引用者顯示不同的信息,取決於他們來自何處 。 例如,您可以執行以下操作:

通過Referer阻止用戶使用.htaccess

從安全角度來看,如果您在某個特定域名的網站上遇到大量引薦垃圾內容,它可以幫助您簡單地從您的網站阻止該域名。 如果您使用的是安裝了mod_rewrite的Apache,則可以使用幾行命令來阻止它們。 將以下內容添加到.htaccess文件中

重寫引擎
#選項+ FollowSymlinks
RewriteCond%{HTTP_REFERER} spammer \ .com [NC]
RewriteRule。* - [F]

請記住將spammer \ .com一詞更改為您想要阻止的域名。 請記住將\放在域中的任何時段的前面。

不要依賴引用者

請記住,欺騙引薦者是可能的,所以你不應該單獨使用引用者來保證安全。 你可以使用它作為你的其他安全的附加組件,但是如果一個頁面只能被特定的人訪問,那麼你應該使用htaccess為設置一個密碼