011.Nginx防盜鏈

来源:https://www.cnblogs.com/itzgr/archive/2020/07/17/13330327.html
-Advertisement-
Play Games

一 盜鏈 1.1 盜鏈概述 盜鏈指的是在自己的界面展示非本伺服器上的內容,通過技術手段獲得其他伺服器的資源。繞過他人資源展示頁面,在自己頁面向用戶提供此內容,從而減輕自己伺服器的負擔,因為真實的空間和流量來自其他伺服器。 因此,通常為了避免被盜鏈,通常Web伺服器建議配置防盜鏈,其主要防盜鏈思路是能 ...


一 盜鏈

1.1 盜鏈概述

盜鏈指的是在自己的界面展示非本伺服器上的內容,通過技術手段獲得其他伺服器的資源。繞過他人資源展示頁面,在自己頁面向用戶提供此內容,從而減輕自己伺服器的負擔,因為真實的空間和流量來自其他伺服器。 因此,通常為了避免被盜鏈,通常Web伺服器建議配置防盜鏈,其主要防盜鏈思路是能區別哪些請求是非正常用戶請求。

二 防盜鏈

2.1 防盜鏈配置

語法:valid_referers none | blocked | server_names | string ...; 預設值:—— 可配置段:server, location

2.2 環境準備

主機 功能變數名稱 IP 備註
nginx01 good.linuxds.com 172.24.10.21 被盜方
nginx02 steal.uclouda.com 172.24.10.22 盜鏈方
添加解析:/etc/hosts
  1 172.24.10.21	good.odocker.com
  2 172.24.10.22    steal.uclouda.com
  3 [root@nginx0X ~]# nginx -V
  4 nginx version: nginx/1.16.1
 

2.3 模擬盜鏈

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf	#創建模擬被盜方配置
  2 server {
  3     listen  80;
  4     charset utf-8;
  5         server_name  good.linuxds.com;
  6     location / {
  7         root   /usr/share/nginx/good;
  8         index  index.html;
  9         access_log  /var/log/nginx/good.access.log  main;
 10         error_log   /var/log/nginx/good.error.log  warn;
 11   }
 12 }
 
  1 [root@nginx01 ~]# mkdir -p /usr/share/nginx/good/images
  2 [root@nginx01 ~]# echo '<h1>Good</h1>' > /usr/share/nginx/good/index.html
  3 [root@nginx01 ~]# ll /usr/share/nginx/good/images	#上傳一張測試圖片
  4 total 60K
  5 -rw-r--r-- 1 root root 4.8K Mar 11 16:27 baidu.png
   
  1 [root@nginx02 ~]# vi /etc/nginx/conf.d/steal.conf	#創建盜鏈方配置
  2 server {
  3     listen  80;
  4     charset utf-8;
  5     server_name  steal.uclouda.com;
  6     location / {
  7         root   /usr/share/nginx/steal;
  8         index  index.html;
  9         access_log  /var/log/nginx/steal.access.log  main;
 10         error_log   /var/log/nginx/steal.error.log  warn;
 11   }
 12 }
 
  1 [root@nginx02 ~]# mkdir -p /usr/share/nginx/steal
  2 [root@nginx02 ~]# vi /usr/share/nginx/steal/index.html
  3 <html>
  4 <body>
  5 <br>盜鏈圖片</br>
  6 <img src="http://good.linuxds.com/images/baidu.png">
  7 </body>
  8 </html>
 
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重載配置文件
  3 [root@nginx02 ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置文件
  4 [root@nginx02 ~]# nginx -s reload			#重載配置文件
  瀏覽器訪問:http://good.linuxds.com/images/baidu.png clipboard 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/ clipboard

2.4 防盜鏈配置01

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
  2 server {
  3     listen  80;
  4     charset utf-8;
  5     server_name  good.linuxds.com;
  6     location / {
  7         root   /usr/share/nginx/good;
  8         index  index.html;
  9         access_log  /var/log/nginx/good.access.log  main;
 10         error_log   /var/log/nginx/good.error.log  warn;
 11         valid_referers none blocked good.linuxds.com;
 12         if ($invalid_referer) {
 13             return 403;
 14         }
 15   }
 16 }
 
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重載配置文件
  配置釋義: valid_referers:此關鍵字定義了白名單,即本機自身訪問允許; invalid_referer:此為內置變數,通過判斷上一行中的valid_referers值會返回0或者1,
  • none代表請求頭中沒有referer信息,這一般是直接在瀏覽器輸入圖片網址;
  • blocked代表被防火牆過濾標記過的請求。如果訪問來源不在白名單內,則返回403錯誤
瀏覽器訪問:http://good.linuxds.com/images/baidu.png clipboard 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/ clipboard 如上所示:已成功配置防盜鏈。

2.5 防盜鏈配置02

  1 [root@nginx01 ~]# vi /etc/nginx/conf.d/good.conf
  2 server {
  3     listen  80;
  4     charset utf-8;
  5         server_name  good.linuxds.com;
  6     location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {	#針對特定文件類型
  7       valid_referers none blocked *.linuxds.com linuxds.com;
  8       access_log  /var/log/nginx/good.access.log  main;
  9       error_log   /var/log/nginx/good.error.log  warn;
 10       if ($invalid_referer) {
 11           rewrite ^/ https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=1767274412,1868768041&fm=26&gp=0.jpg;
 12     }
 13   }
 14 }
 
  1 [root@nginx01 ~]# nginx -t -c /etc/nginx/nginx.conf	#檢查配置文件
  2 [root@nginx01 ~]# nginx -s reload			#重載配置文件
  配置釋義: rewrite:判斷如果不是白名單第五行則進行重定向到自定義的固定鏈接。 瀏覽器訪問盜鏈網站:http://steal.uclouda.com/ clipboard
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 這是系列文章中的第一篇:使用GraphvizOnline可視化ASP.NETCore3.0終結點。. 第1部分-使用DOT語言來可視化你的ASP.NETCore3.0終結點(本文) 第2部分-向ASP.NET Core應用程式添加終結點圖 第3部分-使用ImpromptuInterface創建一個自 ...
  • Tips:本篇已加入系列文章閱讀目錄,可點擊查看更多相關文章。 前言 上一篇【.Net Core微服務入門全紀錄(八)——Docker Compose與容器網路】完成了docker-compose.yml文件的編寫,最後使用docker compose的一個up指令即可在docker中運行整個複雜的 ...
  • 背 景 Read the fucking source code! --By 魯迅 A picture is worth a thousand words. --By 高爾基 說明: Kernel版本:4.14 ARM64處理器,Contex-A53,雙核 使用工具:Source Insight 3 ...
  • 前言 ​ 最近公司里比較新的項目裡面,看到了很多關於java8新特性的用法,由於之前自己對java8的新特性不是很瞭解也沒有去做深入研究,所以最近就系統的去學習了一下,然後總結了一篇文章第一時間和大家分享一下。 ​ ​ 在瞭解一項新技術之前,我們需要瞭解我們為什麼要去學習它以及它的優點,以下是我總結 ...
  • TiDB 是 PingCAP 公司自主設計、研發的開源分散式關係型資料庫,是一款同時支持線上事務處理與線上分析處理 (Hybrid Transactional and Analytical Processing, HTAP)的融合型分散式資料庫產品,具備水平擴容或者縮容、金融級高可用、實時 HTAP... ...
  • 首先參照https://www.cnblogs.com/wdw984/p/13330074.html,來進行如何安裝Centos和離線下載rpm包。 離線下載jemalloc,上傳到CentOS的/data/rpm/jemalloc目錄 因為redis6.0.5推薦使用jemalloc管理記憶體,所以 ...
  • 一 負載均衡概述 1.1 負載均衡介紹 負載均衡是將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度,帶給用戶更好的體驗。對於Web應用,通過負載均衡,可以將一臺伺服器的工作擴展到多台伺服器中執行,提高整個網站的負載能力。其本質採用一個調度者,保證所有後端伺服器都將性能充分發揮,從而保持 ...
  • win10 訪問遠程文件夾 此共用需要過時的SMB1協議 你不能訪問此共用文件夾 step1 開放協議 在windows功能中勾選SMB1.0並重啟電腦 step2 修改本地策略 將“啟動不安全的來賓登錄”雙擊開啟並確定 PS windows訪問遠程(區域網)使用\\,其實就是,\為本地路徑,\\為 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 插件化的需求主要源於對軟體架構靈活性的追求,特別是在開發大型、複雜或需要不斷更新的軟體系統時,插件化可以提高軟體系統的可擴展性、可定製性、隔離性、安全性、可維護性、模塊化、易於升級和更新以及支持第三方開發等方面的能力,從而滿足不斷變化的業務需求和技術挑戰。 一、插件化探索 在WPF中我們想要開 ...
  • 歡迎ReaLTaiizor是一個用戶友好的、以設計為中心的.NET WinForms項目控制項庫,包含廣泛的組件。您可以使用不同的主題選項對項目進行個性化設置,並自定義用戶控制項,以使您的應用程式更加專業。 項目地址:https://github.com/Taiizor/ReaLTaiizor 步驟1: ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • Channel 是乾什麼的 The System.Threading.Channels namespace provides a set of synchronization data structures for passing data between producers and consume ...
  • efcore如何優雅的實現按年分庫按月分表 介紹 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、輕量級針對分表分庫讀寫分離的解決方案,具有零依賴、零學習成本、零業務代碼入侵適配 距離上次發文.net相關的已經有很久了,期間一直在從事java相關的 ...
  • 前言 Spacesniffer 是一個免費的文件掃描工具,通過使用樹狀圖可視化佈局,可以立即瞭解大文件夾的位置,幫助用戶處理找到這些文件夾 當前系統C盤空間 清理後系統C盤空間 下載 Spacesniffer 下載地址:https://spacesniffer.en.softonic.com/dow ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 一、ReZero簡介 ReZero是一款.NET中間件 : 全網唯一開源界面操作就能生成API , 可以集成到任何.NET6+ API項目,無破壞性,也可讓非.NET用戶使用exe文件 免費開源:MIT最寬鬆協議 , 一直從事開源事業十年,一直堅持開源 1.1 純ReZero開發 適合.Net Co ...
  • 一:背景 1. 講故事 停了一個月沒有更新文章了,主要是忙於寫 C#內功修煉系列的PPT,現在基本上接近尾聲,可以回頭繼續更新這段時間分析dump的一些事故報告,有朋友微信上找到我,說他們的系統出現了大量的http超時,程式不響應處理了,讓我幫忙看下怎麼回事,dump也抓到了。 二:WinDbg分析 ...
  • 開始做項目管理了(本人3年java,來到這邊之後真沒想到...),天天開會溝通整理需求,他們講話的時候忙裡偷閑整理一下常用的方法,其實語言還是有共通性的,基本上看到方法名就大概能猜出來用法。出去打水的時候看到外面太陽好好,真想在外面坐著曬太陽,回來的時候好兄弟三年前送給我的鍵盤D鍵不靈了,在打"等待 ...