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)