国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

Nginx配置圖片防盜鏈

2018-11-24 06:04:36 7347

為了防止其他站點(diǎn)直接從我們網(wǎng)站引用圖片等鏈接,消耗了我們服務(wù)器資源和網(wǎng)絡(luò)流量,我們一般會(huì)對(duì)圖片等資源做一些限制,比如打水印,防盜鏈設(shè)置等,本文主要結(jié)合Nginx來(lái)講解如何設(shè)置圖片防盜鏈。

我們所說(shuō)的防盜鏈功能是都是基于 HTTP 協(xié)議支持的 Referer 機(jī)制,通過(guò) referer 跟蹤來(lái)源,對(duì)來(lái)源進(jìn)行識(shí)別和判斷。 利用這個(gè)策略,我們基本可以防止其他站點(diǎn)直接鏈接我們站上的圖片。 舉個(gè)例子,如果a.com網(wǎng)站的頁(yè)面調(diào)用了我站的圖片:http://www.tjdsmy.cn/p.jpg ,我們通過(guò)Nginx來(lái)判斷它的來(lái)源域,不屬于www.tjdsmy.cn過(guò)來(lái)的圖片都返回403,即禁止訪問(wèn)。

打開(kāi)對(duì)應(yīng)站點(diǎn)的conf配置文件,有關(guān)Nginx站點(diǎn)配置文件可以參考: http://www.tjdsmy.cn/server/504.html ,主要配置代碼如下:

location ~*\.(gif|jpg|jpeg|png|bmp|swf)$ {valid_referers none blocked www.tjdsmy.cn m.landui.com;if ($invalid_referer) {return 403;}}

以上代碼解釋如下:

1、location中指定要防篡改的文件類(lèi)型,多個(gè)后綴用“|”符號(hào)分開(kāi)。

2、valid_referers指定資源訪問(wèn)是通過(guò)以下幾種方式為合法,即白名單,允許文件鏈出的域名白名單。

none:直接通過(guò)url訪問(wèn),無(wú)referer值的情況

blocked:referer值被防火墻修改

servername:指定資源在合法的域名白名單中可以被引用,支持*通配符,多個(gè)域名使用空格符分開(kāi)

3、if判斷如果用戶請(qǐng)求的資源不符合上述配置,那么rewrite重定向到你想指定的url上,也可以配置403權(quán)限錯(cuò)誤。

以上設(shè)置差不多就可以起到防盜鏈作用了,但是,這樣并不是徹底地實(shí)現(xiàn)真正意義上的防盜鏈!

我們應(yīng)該注意設(shè)置:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;valid_referers www.tjdsmy.cn m.landui.com;if ($invalid_referer) {return 403;}}

expires 30d;屬于配置文件中l(wèi)ocation作用域中原有的圖片緩存時(shí)間配置,這里我們把兩個(gè)location合并在一起。

接著,我們?nèi)サ鬾one blocked兩個(gè)關(guān)鍵詞,目的是直接在瀏覽器地址欄中輸入對(duì)應(yīng)的圖片地址也會(huì)被拒絕訪問(wèn)。

如果匹配到不屬于設(shè)定的referer來(lái)源域,則返回403,或者重置到一個(gè)url地址上去,這樣可以避免右鍵另存為的方式下載圖片。

當(dāng)然,話又說(shuō)回來(lái),如果人家真想獲得你的圖片還是有辦法的,比如各種偽造referer來(lái)源等方法。

還有一種情況,如果我們站點(diǎn)使用CDN,那么在nginx上的防盜鏈配置似乎不起作用了,別擔(dān)心,找CDN廠商,他們有一整套資源防盜鏈方法,大多在CDN管理平臺(tái)直接設(shè)置即可,比如阿里云CDN,其原理也是判斷referer。

提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題: