盜鏈是一種損害原有**合法利益,給原**所在伺服器造成額外負擔的非法行為。要採取防盜煉的措施,
首先需要了解盜鏈的實現原理。
客戶端向伺服器請求資源時,為了減少網路頻寬,提高響應時間,伺服器一般不會一次將所有資源完整地傳
回給客戶端。比如在請求乙個網頁時,首先會傳回該網頁的文字內容,當客戶端瀏覽器在解析文字的過程中
發現有存在時,會再次向伺服器發起對該資源的請求,伺服器將儲存的資源再傳送給客戶端。
接到其他站點的伺服器上去了,這就形成了盜鏈行為。
比如內網使用者通過internet訪問網域名稱為www.test.com這個伺服器上的web服務,而該伺服器沒有儲存
資源實際上是來自其他的伺服器。
取防盜煉的措施來幹這個工作,結果就是,a**想請求所需要的資源,通過url的方式,獲取的可能不是原
來的了,出現404或者別的替代了。如果通過瀏覽器直接開啟url,那麼仍然有可能顯示404,
這就是防盜煉。
非法訪問並不會給**帶來利益或好處,相反,這會浪費**的頻寬,增加伺服器的連線壓力,比如有些網
要實現防盜煉,需要了解http協議中的請求頭部的referer頭域和採用url的格式表示訪問當前網頁或者文
件的源位址。通過該頭域的值,我們可以檢測到訪問目標資源的源位址。這樣,如果我們檢測到referer頭
域中 的值並不是自己站點內的url,就採取組織措施,實現防盜煉。
需要注意是,這種實現可以限制大多數普通的非法請求,但不能限制有目的的請求,因為這種方式可以通過
偽造referer資訊來繞過,因此該方法不能完全阻止所有盜鏈行為。
使用ngx_http_accesskey_module模組或lua指令碼實現
1.valid_referer:
nginx配置中有乙個指令valid_referers,用來獲取referer頭域中的值,並且根據該值的情況給
nginx全域性變數$invalid_referer的值,如果referer頭域中沒有符合valid_referers指令配置
的值,$invalid_referer變數將會被賦值為1。
valid_referer指令的語法結構為:
valid_referers none | blocked | server_names | string ....;
none 檢測referer頭域不存在的請求
blocked 檢測referer頭域的值被防火牆或者**伺服器刪除或偽裝的情況。
這種情況下,該頭域的值不以「http://」或者「https://」開頭
server_names 設定乙個或多個url,檢測referer頭域的值是否是這些url中的某個。
從nginx 0.5.33以後支援使用萬用字元「*」。
2.ngx_http_accesskey_module:通過金鑰方式進行防盜煉;
而這個key是由**將使用者的某個特徵值進行md5加密而生成。
#表示對gif、jpg、png、swf、flv字尾的檔案實行防盜煉
}或者 針對目錄防止盜鏈
location /images/
}
location /download
訪問測試指令碼download.php:
$ipkey
= md5(
"mypass"
.$_server
['remote_addr'])
;$output_add_key=".
$ipkey
.">download_add_key";
$output_org_url
="download_org_path";
echo
$output_add_key
;echo
$output_org_url
;?>
參考文章:
1.2.
3.4.
5.
配置Nginx實現防盜煉功能
準備兩台linux,用第二台linux主機來通過拿第一台主機的鏈結來展現 改動index.html新增 root localhost cd usr local nginx html root localhost html ls 50x.html index.html root localhost h...
nginx防盜煉 s3防盜煉
nginx防盜煉 編輯檔案 usr local nginx conf nginx.conf 以上 解釋如下 1 location中指定要防篡改的檔案型別 2 valid referers指定資源訪問是通過以下幾種方式為合法 none 直接通過url訪問,無referer值的情況 blocked re...
nginx 防盜煉心得
後台是利用http伺服器nginx和tomcat在linux環境中,本來,如果是這樣的話,就可以進行處理這樣的請求。思路是 獲取許可權,看這個請求是否有許可權進行訪問,但是,我們在tomcat的service.xml目錄裡面配置了絕對路徑 這就造成了,不需要經過專案,只要tomcat進行開啟就可以訪...