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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx从入门到入坟(九)- Nginx静态资源如何防盗链

發布時間:2023/12/10 Nginx 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx从入门到入坟(九)- Nginx静态资源如何防盗链 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1. 什么是資源盜鏈
  • 2. Nginx防盜鏈的實現原理
  • 3. 針對目錄進行防盜鏈
  • 參考文獻

原文地址:https://program-park.github.io/2022/04/21/nginx_10/

1. 什么是資源盜鏈

??資源盜鏈指的是此內容不在自己服務器上,而是通過技術手段,繞過別人的限制將別人的內容放到自己頁面上最終展示給用戶,以此來盜取大網站的空間和流量。簡而言之就是用別人的東西成就自己的網站。
??效果演示,下面是京東和百度的兩張圖片:
??京東:https://img14.360buyimg.com/n7/jfs/t1/101062/37/2153/254169/5dcbd410E6d10ba22/4ddbd212be225fcd.jpg
??百度:https://pics7.baidu.com/feed/cf1b9d16fdfaaf516f7e2011a7cda1e8f11f7a1a.jpeg?token=551979a23a0995e5e5279b8fa1a48b34&s=BD385394D2E963072FD48543030030BB
??引用兩張圖片:


??效果:


??可以看出,百度的圖片添加了防止盜鏈的功能,而京東的圖片可以直接使用。

2. Nginx防盜鏈的實現原理

??講防盜鏈的原理之前,我們得先了解一個 HTTP 的頭信息 Referer,當瀏覽器向 Web 服務器發送請求的時候,一般都會帶上 Referer,來告訴瀏覽器該網頁是從哪個頁面鏈接過來的。


??后臺服務器可以根據獲取到的這個 Referer 信息來判斷是否為自己信任的網站地址,如果是則放行繼續訪問,如果不是則可以返回 403(服務端拒絕訪問)的狀態信息。
??Nginx 防盜鏈的具體實現:
??valid_referers: Nginx 會通就過查看 referer 自動和 valid_referers 后面的內容進行匹配,如果匹配到了就將$invalid_referer變量置 0,如果沒有匹配到,則將$invalid_referer變量置為 1,匹配的過程中不區分大小寫。

語法valid_referers none|blocked|server_names|string…
默認值-
位置server、location
  • none:如果 Header 中的 Referer 為空,允許訪問;
  • blocked:在 Header 中的 Referer 不為空,但是該值被防火墻或代理進行偽裝過,如不帶http://、https://等協議頭的資源允許訪問;
  • server_names:指定具體的域名或者 IP;
  • string:可以支持正則表達式和*的字符串。如果是正則表達式,需要以~開頭表示,例如:
location ~*\.(png|jpg|gif){valid_referers none blocked www.baidu.com 10.7.2.205 *.example.com example.* www.example.org ~\.google\.;if ($invalid_referer){return 403;}root /usr/local/nginx/html; }

??那么現在問題來了,圖片有很多,該如何批量進行防盜鏈?

3. 針對目錄進行防盜鏈

??配置如下:

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

??這樣我們可以對一個目錄下的所有資源進行翻到了操作。
??還有一個問題:Referer 的限制比較粗,比如隨意加一個 Referer,上面的方式是無法進行限制的。那么這個問題改如何解決?
??此處我們需要用到 Nginx 的第三方模塊ngx_http_accesskey_module,第三方模塊如何實現盜鏈,如何在 Nginx 中使用第三方模塊的功能,這些我們在后面的 Nginx 的模塊篇再進行詳細的講解。

參考文獻

??【1】https://www.bilibili.com/video/BV1ov41187bq?p=64

總結

以上是生活随笔為你收集整理的Nginx从入门到入坟(九)- Nginx静态资源如何防盗链的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。