日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Nginx >内容正文

Nginx

Nginx防盗链的实现原理和实现步骤

發(fā)布時(shí)間:2024/4/13 Nginx 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx防盗链的实现原理和实现步骤 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Nginx防盜鏈的實(shí)現(xiàn)原理:

?

了解防盜鏈的原理之前,我們得先學(xué)習(xí)一個(gè)HTTP的頭信息Referer,當(dāng)瀏覽器向web服務(wù)器發(fā)送請(qǐng)求的時(shí)候,一般都會(huì)帶上Referer,來告訴瀏覽器該網(wǎng)頁(yè)是從哪個(gè)頁(yè)面鏈接過來的。

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

在本地模擬上述的服務(wù)器效果:

Nginx防盜鏈的具體實(shí)現(xiàn):

valid_referers:nginx會(huì)通就過查看referer自動(dòng)和valid_referers后面的內(nèi)容進(jìn)行匹配,如果匹配到了就將$invalid_referer變量置0,如果沒有匹配到,則將$invalid_referer變量置為1,匹配的過程中不區(qū)分大小寫。

語(yǔ)法valid_referers none|blocked|server_names|string...
默認(rèn)值
位置server、location

none: 如果Header中的Referer為空,允許訪問

blocked:在Header中的Referer不為空,但是該值被防火墻或代理進(jìn)行偽裝過,如不帶"http://" 、"https://"等協(xié)議頭的資源允許訪問。

server_names:指定具體的域名或者IP

string: 可以支持正則表達(dá)式和*的字符串。如果是正則表達(dá)式,需要以~開頭表示,例如

location ~*\.(png|jpg|gif){valid_referers none blocked www.baidu.com 192.168.200.222 *.example.com example.* www.example.org ~\.google\.;if ($invalid_referer){return 403;}root /usr/local/nginx/html;}

遇到的問題:圖片有很多,該如何批量進(jìn)行防盜鏈?

針對(duì)目錄進(jìn)行防盜鏈

配置如下:

location /images {valid_referers none blocked www.baidu.com 192.168.200.222 *.example.com example.* www.example.org ~\.google\.;if ($invalid_referer){return 403;}root /usr/local/nginx/html;}

這樣我們可以對(duì)一個(gè)目錄下的所有資源進(jìn)行翻到了操作。

遇到的問題:Referer的限制比較粗,比如隨意加一個(gè)Referer,上面的方式是無法進(jìn)行限制的。那么這個(gè)問題改如何解決?

此處我們需要用到Nginx的第三方模塊ngx_http_accesskey_module,第三方模塊如何實(shí)現(xiàn)盜鏈,如果在Nginx中使用第三方模塊的功能,這些我們?cè)诤竺娴腘ginx的模塊篇再進(jìn)行詳細(xì)的講解。

總結(jié)

以上是生活随笔為你收集整理的Nginx防盗链的实现原理和实现步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。