nginx利用referer指令實(shí)現(xiàn)防盜鏈配置
實(shí)現(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; }
以上所有來(lái)至domain.com和域名以及baidu和google的站點(diǎn)都可以訪問(wèn)到當(dāng)前站點(diǎn)的圖片,如果來(lái)源域名不在這個(gè)列表中,那么$invalid_referer等于1,在if語(yǔ)句中返回一個(gè)403給用戶(hù),這樣用戶(hù)便會(huì)看到一個(gè)403的頁(yè)面,如果使用下面的rewrite,那么盜鏈的圖片都會(huì)顯示403.jpg。none規(guī)則實(shí)現(xiàn)了允許空referer訪問(wèn),即當(dāng)直接在瀏覽器打開(kāi)圖片,referer為空時(shí),圖片仍能正常顯示.
[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
指令
語(yǔ)法: valid_referers none | blocked | server_names | string …;
配置段: server, location
指定合法的來(lái)源'referer', 他決定了內(nèi)置變量$invalid_referer的值,如果referer頭部包含在這個(gè)合法網(wǎng)址里面,這個(gè)變量被設(shè)置為0,否則設(shè)置為1. 需要注意的是:這里并不區(qū)分大小寫(xiě)的.
參數(shù)說(shuō)明:
- none “Referer” 為空
- blocked “Referer”不為空,但是里面的值被代理或者防火墻刪除了,這些值都不以http://或者h(yuǎn)ttps://開(kāi)頭,而是“Referer: XXXXXXX”這種形式
- server_names “Referer”來(lái)源頭部包含當(dāng)前的server_names(當(dāng)前域名)
- arbitrary string 任意字符串,定義服務(wù)器名或者可選的URI前綴.主機(jī)名可以使用*開(kāi)頭或者結(jié)尾,在檢測(cè)來(lái)源頭部這個(gè)過(guò)程中,來(lái)源域名中的主機(jī)端口將會(huì)被忽略掉
- regular expression 正則表達(dá)式,~表示排除https://或http://開(kāi)頭的字符串.
注意
通過(guò)Referer實(shí)現(xiàn)防盜鏈比較基礎(chǔ),僅可以簡(jiǎn)單實(shí)現(xiàn)方式資源被盜用。構(gòu)造Referer的請(qǐng)求很容易實(shí)現(xiàn)。
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。
- Nginx防盜鏈的配置方法
- Nginx服務(wù)器下防盜鏈的方法介紹
- Nginx圖片防盜鏈配置實(shí)例
- 配置Nginx的防盜鏈的操作方法
- Springboot四種事件監(jiān)聽(tīng)的實(shí)現(xiàn)方式詳解
- node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地
- nodejs連接ftp上傳下載實(shí)現(xiàn)方法詳解【附:踩坑記錄】
- nodejs實(shí)現(xiàn)生成文件并在前端下載
- Node.js實(shí)現(xiàn)下載文件的兩種實(shí)用方式
- Node.js實(shí)現(xiàn)批量下載圖片簡(jiǎn)單操作示例
- node.js突破nginx防盜鏈機(jī)制,下載圖片案例分析
相關(guān)文章
Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則
Nginx下讓W(xué)ordPress支持固定鏈接的偽靜態(tài)規(guī)則,要讓nginx支持wordpress固定鏈接非常簡(jiǎn)單,需要自己進(jìn)行添加點(diǎn)配置代碼2013-02-02Windows下用Nginx代理Django安裝配置實(shí)例
這篇文章主要介紹了Windows下用Nginx代理Django安裝配置實(shí)例,本文講解了安裝djanjo、用djanjo生成簡(jiǎn)單web頁(yè)面、用nginx進(jìn)行代理等內(nèi)容,需要的朋友可以參考下2015-03-03Nginx實(shí)現(xiàn)404頁(yè)面的方法小結(jié)
這篇文章主要介紹了Nginx實(shí)現(xiàn)404頁(yè)面的方法小結(jié),需要的朋友可以參考下2017-08-08Nginx配合Apache或Tomcat的動(dòng)靜分離基本配置實(shí)例
這篇文章主要介紹了Nginx配合Apache或Tomcat的動(dòng)靜分離基本配置實(shí)例,實(shí)際上Nginx專(zhuān)門(mén)負(fù)責(zé)靜態(tài)和反向代理是主流服務(wù)器配置方案,需要的朋友可以參考下2016-01-01使用Nginx反向代理與proxy_cache緩存搭建CDN服務(wù)器的配置方法
linux下通過(guò)Nginx反向代理和proxy_cache緩存搭建CDN服務(wù)器加快Web訪問(wèn)速度的配置方法2013-06-06nginx對(duì)http請(qǐng)求處理的各個(gè)階段詳析
這篇文章主要給大家介紹了關(guān)于nginx對(duì)http請(qǐng)求處理的各個(gè)階段分析的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11nginx反向代理服務(wù)因配置文件錯(cuò)誤導(dǎo)致訪問(wèn)資源時(shí)出現(xiàn)404
這篇文章主要介紹了nginx反向代理服務(wù)因配置文件錯(cuò)誤導(dǎo)致訪問(wèn)資源時(shí)出現(xiàn)404,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Nginx反向代理出現(xiàn)502?Bad?Gateway問(wèn)題解決
在配置Nginx反向代理時(shí)遇到502 Bad Gateway錯(cuò)誤,經(jīng)過(guò)排查發(fā)現(xiàn)是SSL握手問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-10-10