Referer圖片防盜鏈

前幾天講了《nginx下載防盜鏈》,今天繼續說下圖片防盜鏈. 他們兩個使用的指令不一樣,前者使用secure link,而且須要程序配合,可是效果很是好;後者不須要程序配合,根據圖片來源來實現,可是隻能先限制基本的圖片盜用,沒法防止圖片採集.nginx

nginx referer指令簡介

nginx模塊ngx_http_referer_module一般用於阻擋來源非法的域名請求.咱們應該牢記,假裝Referer頭部是很是簡單的事情,因此這個模塊只能用於阻止大部分非法請求.咱們應該記住,有些合法的請求是不會帶referer來源頭部的,因此有時候不要拒絕來源頭部(referer)爲空的請求.正則表達式

圖片防盜鏈配置

 

以上全部來至ttlsa.com和域名中包含google和baidu的站點均可以訪問到當前站點的圖片,若是來源域名不在這個列表中,那麼$invalid_referer等於1,在if語句中返回一個403給用戶,這樣用戶便會看到一個403的頁面,若是使用下面的rewrite,那麼盜鏈的圖片都會顯示403.jpg。若是用戶直接在瀏覽器輸入你的圖片地址,那麼圖片顯示正常,由於它符合none這個規則.express

nginx防盜鏈指令

語法: referer_hash_bucket_size size;
默認值: referer_hash_bucket_size 64;
配置段: server, location
這個指令在nginx 1.0.5中開始出現.
Sets the bucket size for the valid referers hash tables. The details of setting up hash tables are provided in a separate document.瀏覽器

語法:     referer_hash_max_size size;
默認值:     referer_hash_max_size 2048;
配置段:     server, location
這個指令在nginx 1.0.5中開始出現.
Sets the maximum size of the valid referers hash tables. The details of setting up hash tables are provided in a separate document.服務器

語法: valid_referers none | blocked | server_names | string ...;
默認值: —
配置段: server, location
指定合法的來源'referer', 他決定了內置變量$invalid_referer的值,若是referer頭部包含在這個合法網址裏面,這個變量被設置爲0,不然設置爲1.記住,不區分大小寫的.ide

參數說明

none
「Referer」 來源頭部爲空的狀況
blocked
「Referer」來源頭部不爲空,可是裏面的值被代理或者防火牆刪除了,這些值都不以http://或者https://開頭.
server_names
「Referer」來源頭部包含當前的server_names(當前域名)
arbitrary string
任意字符串,定義服務器名或者可選的URI前綴.主機名可使用*開頭或者結尾,在檢測來源頭部這個過程當中,來源域名中的主機端口將會被忽略掉
regular expression
正則表達式,~表示排除https://或http://開頭的字符串.google

最後

圖片使用來源頭部作防盜鏈是最合理的. 簡單、實用。可是沒有辦法防採集。若是想作文件的防盜鏈請參考前面章節講到的使用secure link文件防盜鏈文章.spa

 

來源連接:http://www.ttlsa.com/nginx/nginx-referer/3d

相關文章
相關標籤/搜索