apache 下實現防盜鏈
什麼是盜鏈
盜鏈是指在自己的頁面上展示一些並不在自己伺服器上的內容。通常的做法是通過技術手段獲得它人伺服器上的資源地址,
繞過別人的資源展示頁面,直接在自己的頁面上向終端使用者提供此內容。
比較常見的是一些小站盜用大站的資源(圖片、音樂、視訊),
對於這些小站來說,通過盜鏈的方法可以減輕自己伺服器的負擔,因為真實的空間和流量均是來自別人的伺服器。
對大站造成的影響確實徒徒增加了伺服器壓力,使用者、流量還不是自己的。
下面使用兩臺伺服器來模擬這種情況
172.16.16.6 www.wawa.com 是正常的網站
172.16.16.6 www.wawawa.com 是盜鏈被阻止後跳轉的網站
172.16.16.16 www.aaa.com 是盜鏈網站
本次實驗需要基於Apache的虛擬主機和DNS這裡就不介紹了。
先來看看不做防盜鏈是什麼效果
首先配置172.16.16.6 www.wawa.com 正常主機的圖片網站和阻止跳轉網站
一樣首先修改主配置檔案 vim /etc/httpd/conf/httpd.conf 新增虛擬主機 和監聽80埠
再來就是配置盜鏈網站172.16.16.16 www.aaa.com
弄好了伺服器的配置就來驗證網站的效果
正常網站
盜鏈網站 為了區分於正常網站,網站的文字稍作改變作為區分
阻止網站
可以看到除了我修改的文字不同之外圖片什麼的無需配置直接就可以顯示在盜鏈的網站上,這種情況肯定是要阻止的
下面來配置防盜鏈
使用yum 安裝的肯定是有這個模組的 不放心的可以檢查一下
[[email protected] 20]# cd /etc/httpd/
[[email protected] httpd]# apachectl -D DUMP_MODULES | grep expires
修改剛才的虛擬主機的檔案 vim /etc/httpd/conf/httpd.conf 把下面紅字新增在正常服務的</VirtualHost>前
<VirtualHost 172.16.16.6>
DocumentRoot /opt/www/10
ServerName www.wawa.com
<Directory /opt/www/10 >
AllowOverride None
Require all granted
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://172.16.16.6/*
RewriteCond %{HTTP_REFERER} !^http://wawa.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://wawa.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.wawa.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.wawa.com$ [NC]
RewriteRule .*\.(gif|jpg|swf|png)$ http://www.wawawa.com/error.jpg [R,NC]
</Directory>
</VirtualHost>
下面來訪問盜鏈網站來看看結果
到此,防盜鏈就算成功了。