nginx配置防盜鏈的三種實(shí)現(xiàn)方式總結(jié)
什么是資源盜鏈
資源盜鏈?zhǔn)侵竷?nèi)容不在自己服務(wù)器上,而通過(guò)技術(shù)手段,繞過(guò)別人的限制,將別人的內(nèi)容,比如熱門(mén)的圖片放到自己頁(yè)面上,展示給用戶,以此來(lái)盜取別人網(wǎng)站的流量,即蹭流量。
簡(jiǎn)而言之就是用別人的東西成就自己的網(wǎng)站
如下,分別在網(wǎng)上找的兩個(gè)圖片,可以直接在瀏覽器中打開(kāi)這2個(gè)鏈接


一、引導(dǎo)案例
接下來(lái),利用上面的這兩個(gè)圖片鏈接,我們?cè)趎ginx的資源目錄下,創(chuàng)建一個(gè)html頁(yè)面,將這兩張圖片的鏈接設(shè)置進(jìn)去
如下有一個(gè) a.html的頁(yè)面

在a.html的頁(yè)面中引用上面兩個(gè)圖片鏈接,內(nèi)容如下:

啟動(dòng)nginx服務(wù),然后瀏覽器上訪問(wèn)a.html頁(yè)面,觀察圖片展示的效果

從展示的效果來(lái)看,第一張圖片可以正常展示,而第二張圖片則無(wú)法顯示,也就是說(shuō),第二張圖片的地址添加了防止盜鏈的功能;
二、Nginx防盜鏈實(shí)現(xiàn)原理
了解防盜鏈的原理之前,需要了解一下HTTP的頭信息Referer這個(gè)參數(shù);
當(dāng)瀏覽器向web服務(wù)器發(fā)送請(qǐng)求的時(shí)候,一般都會(huì)帶上Referer,來(lái)告訴瀏覽器該網(wǎng)頁(yè)是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的;

后臺(tái)服務(wù)器根據(jù)獲取到的這個(gè)Referer信息,從而判斷是否為自己信任的網(wǎng)站地址,如果是則放行繼續(xù)訪問(wèn),如果不是則可以返回403(服務(wù)端拒絕訪問(wèn))的狀態(tài)信息)
在本地模擬上述的服務(wù)器效果如下:

三、Nginx防盜鏈具體實(shí)現(xiàn)

valid_referers
- nginx會(huì)通過(guò)查看referer自動(dòng)和valid_referers后面的內(nèi)容進(jìn)行匹配;
- 如果匹配到了就將i n v a l i d r e f e r e r 變 量 置 0 , 如 果 沒(méi) 有 匹 配 到 ,則將invalid_referer變量置為1;
- 匹配的過(guò)程中不區(qū)分大小寫(xiě);
其他參數(shù)介紹:
- none:如果Header中的Referer為空,允許訪問(wèn);
- blocked:在Header中的Referer不為空,但是該值被防火墻或代理進(jìn)行偽裝過(guò),如不帶"http://" 、"https://"等協(xié)議頭的資源允許訪問(wèn);
- server_names:指定具體的域名或者IP;
- string: 可以支持正則表達(dá)式和*的字符串。如果是正則表達(dá)式,需要以~
開(kāi)頭表示
實(shí)現(xiàn)方式一
1、在nginx的html目錄下創(chuàng)建一個(gè)images的目錄

2、在nginx.conf中添加如下配置

3、重啟nginx,訪問(wèn)下這張圖片

4、將這個(gè)圖片的路徑也配置到上面的 a.html中

5、重啟nginx之后再次訪問(wèn)a.html,可以正常訪問(wèn)

為了實(shí)現(xiàn)防盜鏈功能,只需要在上面的nginx.conf配置中添加如下內(nèi)容

添加完畢,重啟nginx,再次訪問(wèn)該頁(yè)面,這時(shí)候可以看到,圖片就無(wú)法再訪問(wèn)了,這就實(shí)現(xiàn)了防盜鏈的功能

實(shí)現(xiàn)方式二
針對(duì)整個(gè)目錄進(jìn)行設(shè)置
如果要設(shè)置的圖片很多的話,還可以針對(duì)整個(gè)目錄進(jìn)行設(shè)置,可以參考如下:

然后在自定義的a.html中修改下圖片的路徑即可

再次訪問(wèn)頁(yè)面,也能達(dá)到上面的效果

實(shí)現(xiàn)方式三
從上面的效果來(lái)看,確實(shí)達(dá)到了防止盜鏈,但是在實(shí)際應(yīng)用中,希望那些未展示出來(lái)的圖片顯示的更加友好點(diǎn),可以結(jié)合rewrite的方式來(lái)做,下面來(lái)看具體的實(shí)現(xiàn)步驟
1、在網(wǎng)上找一張圖片并放到images目錄下
效果如下

2、修改nginx.conf配置文件
關(guān)鍵配置信息如下,即將原來(lái)的返回403,使用rewrite指向特定的圖片即可

修改完畢后重啟nginx服務(wù),再次訪問(wèn)上面的路徑,可以看到下面的效果

這樣也實(shí)現(xiàn)了防盜鏈的效果
總結(jié)
到此這篇關(guān)于nginx配置防盜鏈的三種實(shí)現(xiàn)方式的文章就介紹到這了,更多相關(guān)nginx配置防盜鏈內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信