nginx利用referer指令實現(xiàn)防盜鏈配置
實現(xiàn)圖片防盜鏈:
location ~* \.(gif|jpg|png|webp)$ { valid_referers none blocked domain.com *.domain.com server_names ~\.google\. ~\.baidu\.; if ($invalid_referer) { return 403; #rewrite ^/ http://www.domain.com/403.jpg; } root /opt/www/image; }
以上所有來至domain.com和域名以及baidu和google的站點都可以訪問到當前站點的圖片,如果來源域名不在這個列表中,那么$invalid_referer等于1,在if語句中返回一個403給用戶,這樣用戶便會看到一個403的頁面,如果使用下面的rewrite,那么盜鏈的圖片都會顯示403.jpg。none規(guī)則實現(xiàn)了允許空referer訪問,即當直接在瀏覽器打開圖片,referer為空時,圖片仍能正常顯示.
[root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.baidu.com' HTTP/1.1 200 OK Server: nginx/1.8.1 Date: Fri, 16 Dec 2016 14:56:51 GMT Content-Type: image/jpeg Content-Length: 17746 Last-Modified: Tue, 16 Aug 2016 03:20:21 GMT Connection: keep-alive ETag: "57b28675-4552" Accept-Ranges: bytes [root@loya ~]# curl -I http://qingkang.me/1.jpg -H 'Referer:http://www.qq.com' HTTP/1.1 403 Forbidden Server: nginx/1.8.1 Date: Fri, 16 Dec 2016 14:56:58 GMT Content-Type: text/html; charset=utf-8 Content-Length: 168 Connection: keep-alive
指令
語法: valid_referers none | blocked | server_names | string …;
配置段: server, location
指定合法的來源'referer', 他決定了內置變量$invalid_referer的值,如果referer頭部包含在這個合法網(wǎng)址里面,這個變量被設置為0,否則設置為1. 需要注意的是:這里并不區(qū)分大小寫的.
參數(shù)說明:
- none “Referer” 為空
- blocked “Referer”不為空,但是里面的值被代理或者防火墻刪除了,這些值都不以http://或者https://開頭,而是“Referer: XXXXXXX”這種形式
- server_names “Referer”來源頭部包含當前的server_names(當前域名)
- arbitrary string 任意字符串,定義服務器名或者可選的URI前綴.主機名可以使用*開頭或者結尾,在檢測來源頭部這個過程中,來源域名中的主機端口將會被忽略掉
- regular expression 正則表達式,~表示排除https://或http://開頭的字符串.
注意
通過Referer實現(xiàn)防盜鏈比較基礎,僅可以簡單實現(xiàn)方式資源被盜用。構造Referer的請求很容易實現(xiàn)。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
相關文章
Nginx下讓WordPress支持固定鏈接的偽靜態(tài)規(guī)則
Nginx下讓WordPress支持固定鏈接的偽靜態(tài)規(guī)則,要讓nginx支持wordpress固定鏈接非常簡單,需要自己進行添加點配置代碼2013-02-02Nginx配合Apache或Tomcat的動靜分離基本配置實例
這篇文章主要介紹了Nginx配合Apache或Tomcat的動靜分離基本配置實例,實際上Nginx專門負責靜態(tài)和反向代理是主流服務器配置方案,需要的朋友可以參考下2016-01-01使用Nginx反向代理與proxy_cache緩存搭建CDN服務器的配置方法
linux下通過Nginx反向代理和proxy_cache緩存搭建CDN服務器加快Web訪問速度的配置方法2013-06-06nginx反向代理服務因配置文件錯誤導致訪問資源時出現(xiàn)404
這篇文章主要介紹了nginx反向代理服務因配置文件錯誤導致訪問資源時出現(xiàn)404,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06Nginx反向代理出現(xiàn)502?Bad?Gateway問題解決
在配置Nginx反向代理時遇到502 Bad Gateway錯誤,經(jīng)過排查發(fā)現(xiàn)是SSL握手問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-10-10