Nginx實戰案例—盜鏈和防盜鏈詳解

Nginx實戰案例—盜鏈和防盜鏈詳解

1. 什麼是盜鏈

盜鏈是指服務提供商自己不提供服務的內容,通過技術手段繞過其它有利益的最終用戶界面(如廣告),直接在自己的網站上向最終用戶提供其它服務提供商的服務內容,騙取最終用戶的瀏覽和點擊率。受益者不提供資源或提供很少的資源,而真正的服務提供商卻得不到任何的收益。

2. 什麼是防盜鏈

WEB應用防火牆通過實現URL級別的訪問控制,對客戶端請求進行檢測,如果發現圖片、文件等資源信息的HTTP請求來自於其它網站,則阻止盜鏈請求,節省因盜用資源鏈接而消耗的帶寬和性能。

3. 模擬盜鏈

server2竊取server1的資源:
修改配置文件在server1中添加一個虛擬web:

vim /usr/local/nginx/conf/nginx.conf

132 server {
133         listen 80;
134         server_name www.westos.org;
135         location / {
136         	root /web;
137         	index index.html;
138 		}
139 		}

在這裏插入圖片描述

cd /web/		#在該目錄中放一張圖片
nginx -t		#語法檢測
nginx -s reload	#在不暫停服務的情況下重新加載

在這裏插入圖片描述

測試:

網頁搜索  www.westos.org/huge.jpg  可以查看到該圖片

在這裏插入圖片描述

修改配置文件在server2中添加虛擬web並寫入盜鏈規則:

vim /usr/local/nginx/conf/nginx.conf

126         server {
127                 listen 80;
128                 server_name daolian.westos.org;
129                 charset utf-8;  #不加這個參數網頁上看到的漢字是亂碼
130                 location / {
131                         root /web;
132                         index index.html;
133 }
134 }

在這裏插入圖片描述

mkdir /web
vim /web/index.html

  1 <html>
  2 
  3 <body>
  4 <br>盜鏈圖片</br>
  5 <img src="http://www.westos.org/c.jpg">
  6
  7 </body>
  8 
  9 </html>

在這裏插入圖片描述

在server2中添加解析:

vim /etc/hosts
nginx -t	#語法檢測
nginx -s reload	#在不暫停服務的情況下重新加載

在這裏插入圖片描述
在真機中添加解析:

vim /etc/hosts

在這裏插入圖片描述

測試:

http://daolian.westos.org/ 

盜鏈成功(server2的目錄中並沒有該圖片,而是從www.westos.org網站中盜鏈過來的)
在這裏插入圖片描述

4. 防盜鏈

修改配置文件在serve1中寫入放盜鏈規則:

vim /usr/local/nginx/conf/nginx.conf

139 location ~* \.(gif|jpg|png|jpeg)$ {
140         root /web;
141         valid_referers none blocked www.westos.org;
142         if ($invalid_referer) {
143                 return 403;
144 }
145 }

nginx -t	#語法檢測
nginx -s reload	#在不暫停服務的情況下重新加載

在這裏插入圖片描述測試:

http://daolian.westos.org/ 盜鏈失敗(要盜鏈的圖片變成了小灰色的圖標)

在這裏插入圖片描述
我們可以把它再進行重定向。使別的服務器在盜鏈時返回的不是403,而是我們想要看到的內容:

修改serve1配置文件:

vim /usr/local/nginx/conf/nginx.conf


139 location ~* \.(gif|jpg|png|jpeg)$ {
140         root /web;
141         valid_referers none blocked www.westos.org;
142         if ($invalid_referer) {
143                 rewrite ^/(.*)$ http://bbs.westos.org/daolian.jpg;	#將原網頁重定向到http://bbs.westos.org/daolian.jpg
144 }
145 }
146 
147 }
148 server {
149         listen 80;
150         server_name bbs.westos.org;
151         location / {
152                 root /bbs;
153                 index index.html;
154 }
155 }


在/bbs下放一張圖片daolian.jpg

nginx -t	#語法檢測
nginx -s reload	#在不暫停服務的情況下重新加載

在這裏插入圖片描述

在這裏插入圖片描述
給真機做解析:

vim /etc/hosts

在這裏插入圖片描述

測試:

http://daolian.westos.org/ 盜鏈失敗(查看到的圖片爲daolian.jpg)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章