昨天去參加乙個面試,面試官上來就問「知道防盜煉嗎?它是怎麼實現的?」。當時立刻傻了,防盜鍊是什麼東東?
一般情況下,當我們瀏覽乙個網頁時,並不是一次請求就會把整個頁面的內容傳到本地瀏覽器,尤其是當這個頁面帶有或者其它資源。第一次請求會傳回該頁面的html文字,瀏覽器解析該文字發現還有,會傳送第二次請求,請求獲得。盜鏈問題是:如果乙個**沒有頁面中所說的資源,它就會把這個鏈結到別的**,這樣沒有任何資源的**利用了別的**的資源來展示給瀏覽者,提高了自己的訪問量,而大部分瀏覽者又不會很容易地發現,這樣顯然,對於那個被利用了資源的**是不公平的。一些不良**為了不增加成本而擴充自己站點內容,經常盜用其他**的鏈結。一方面損害了原**的合法利益,另一方面又加重了伺服器的負擔。
要實現防盜煉,我們就必須先理解盜鏈的實現原理,提到防盜煉的實現原理就不得不從http協議說起,在http協議中,有乙個表頭欄位叫referer,採用url的格式來表示從哪兒鏈結到當前的網頁或檔案。換句話說,通過referer,**可以檢測目標網頁訪問的**網頁,如果是資源檔案,則可以跟蹤到顯示它的網頁位址。有了referer跟蹤**就好辦了,這時就可以通過技術手段來進行處理,一旦檢測到**不是本站即進行阻止或者返回指定的頁面。
nginx防盜煉的配置
1、nginx針對檔案型別的防盜煉配置方法:
php100.com/www.php100.com 表示自己的信任站點。gif|jpg|swf 表示要保護檔案的副檔名(以|分開)。nolink.gif 盜鏈後的重定向頁面/。用以輸出警示資訊,這張應該盡可能的小。
有些使用者使用的是虛擬主機,沒有伺服器的控制權,無法修改 httpd.conf 檔案和重啟伺服器。那麼請確認你的虛擬主機支援 .htaccess,將上面的配置寫入 .htaccess 檔案,放入根目錄或所在的目錄即可:
# 防盜煉配置
通過判斷referer變數的值,判斷或資源的引用是否合法,只有在設定範圍內的 referer,才能訪問指定的資源,從而實現了防盜煉(anti-leech)的目的。需要指出的是:不是所有的使用者**(瀏覽器)都會設定 referer 變數,而且有的還可以手工修改 referer,也就是說,referer 是可以被偽造的。本文所講的,只是一種簡單的防護手段。當然,應付一般的盜鏈也足夠了。
web防盜煉原理及實戰
盜鏈,簡單的說就是某些 通過自身 程式未經許可呼叫其他 的資源,在自己 上顯示這些資源。浪費了呼叫資源 的網路流量,造成其他 的頻寬及服務壓力吃緊,甚至宕機 常見的防盜煉解決方案 1.根據http referer實現防盜煉 在http協議中,有乙個表頭欄位叫referer,使用url格式來表示從 來...
nginx防盜煉 s3防盜煉
nginx防盜煉 編輯檔案 usr local nginx conf nginx.conf 以上 解釋如下 1 location中指定要防篡改的檔案型別 2 valid referers指定資源訪問是通過以下幾種方式為合法 none 直接通過url訪問,無referer值的情況 blocked re...
防盜煉與防防盜煉簡析
防防盜煉策略 所謂判斷引用位址,就是判斷瀏覽器請求時http頭的referer欄位的值。http referer是header的一部分,當瀏覽器向web伺服器傳送請求的時候,一般會帶上referer,告訴伺服器該請求是從哪個頁面位址過來的,伺服器因此可以獲得一些資訊用於處理。示例 html js c...