在百度百科中切平,對于該參數的描述如下:
“HTTP
Referer是header的一部分,當瀏覽器向web服務器發(fā)送請求的時候昆稿,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器籍此可以獲得一些信息用于處理。”
從上面的論述中我們可以得到如下幾點結論:
http_referer由瀏覽器生成,并不是所有瀏覽器都會設置該值诞丽。
http_referer可以偽造,并不可信拐格。
HTTP_REFERER的用途
HTTP_REFERER提供了引導用戶代理到當前頁的前一頁的地址信息僧免,常見的一些應用場景有防盜鏈,統計文章有多少次是來自谷歌搜索結果捏浊,多少次來自百度搜索結果等懂衩。
下面以防盜鏈為例,講講HTTP_REFERER的用法。
如果你經常寫博客浊洞,就一定會遇到盜用你辛辛苦苦整理過的文章不跟你打任何招呼甚至連原文鏈接都一并抹除的網站牵敷,文字這個層面我們沒法控制,但是圖片這個層面我們是可以控制的法希。舉個例子枷餐,如果你也曾復制過一些類似騰訊等網站的文章,你會發(fā)現黏貼下來發(fā)表之后經常出現圖片無法顯示苫亦,這是如何做到的呢毛肋?
場景:a站點的圖片全部存儲在c站點(云服務器)上,c站點將識別調用方是否來自a站點屋剑,否則顯示一張錯誤圖片润匙,b站是盜圖網站。
a站和b站的代碼一致唉匾,如下所示:
<img src="http://www.c.com/image.php?fname=jb.png" width="500px" height="500px" />;
重點是c站的代碼孕讳,如下所示:
<?php
if(strpos($_SERVER['HTTP_REFERER'], 'www.a.com') !== false){
//以下的寫法并不嚴謹,這里只是做測試
if(file_exists($_GET['fname'])){
echo file_get_contents($_GET['fname']);
}
}
這樣當a站訪問時圖片可以正常顯示巍膘,而b站訪問時圖片是顯示不出來的厂财。
https://blog.csdn.net/fjb2080/article/details/80975115