HTTP_REFERER的用法及偽造

在百度百科中,對于該參數(shù)的描述如下:

“HTTP
Referer是header的一部分,當(dāng)瀏覽器向web服務(wù)器發(fā)送請求的時候,一般會帶上Referer,告訴服務(wù)器我是從哪個頁面鏈接過來的,服務(wù)器籍此可以獲得一些信息用于處理?!?/p>

從上面的論述中我們可以得到如下幾點結(jié)論:
http_referer由瀏覽器生成,并不是所有瀏覽器都會設(shè)置該值。
http_referer可以偽造,并不可信。

HTTP_REFERER的用途
HTTP_REFERER提供了引導(dǎo)用戶代理到當(dāng)前頁的前一頁的地址信息,常見的一些應(yīng)用場景有防盜鏈,統(tǒng)計文章有多少次是來自谷歌搜索結(jié)果,多少次來自百度搜索結(jié)果等。
下面以防盜鏈為例,講講HTTP_REFERER的用法。
如果你經(jīng)常寫博客,就一定會遇到盜用你辛辛苦苦整理過的文章不跟你打任何招呼甚至連原文鏈接都一并抹除的網(wǎng)站,文字這個層面我們沒法控制,但是圖片這個層面我們是可以控制的。舉個例子,如果你也曾復(fù)制過一些類似騰訊等網(wǎng)站的文章,你會發(fā)現(xiàn)黏貼下來發(fā)表之后經(jīng)常出現(xiàn)圖片無法顯示,這是如何做到的呢?
場景:a站點的圖片全部存儲在c站點(云服務(wù)器)上,c站點將識別調(diào)用方是否來自a站點,否則顯示一張錯誤圖片,b站是盜圖網(wǎng)站。
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){
    //以下的寫法并不嚴(yán)謹(jǐn),這里只是做測試
    if(file_exists($_GET['fname'])){
        echo file_get_contents($_GET['fname']);
    }
}

這樣當(dāng)a站訪問時圖片可以正常顯示,而b站訪問時圖片是顯示不出來的。
https://blog.csdn.net/fjb2080/article/details/80975115

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容