apache 防盜鏈,限帶寬和連接數(shù)_Web服務(wù)器教程
http標(biāo)準(zhǔn)協(xié)議中有專(zhuān)門(mén)的字段記錄referer
一來(lái)可以追溯上一個(gè)入站地址是什么
二來(lái)對(duì)于資源文件,可以跟蹤到包含顯示他的網(wǎng)頁(yè)地址是什么。
因此所有防盜鏈方法都是基于這個(gè)Referer字段
ServerAdmin laogui@gmail.com
DocumentRoot D:/www/www.chinahtml.com
ServerName www.aaa.com
ErrorDocument 404 http://www.chinahtml.com/error.html
SetEnvIfNoCase Referer "^http://www.aaa.com" local_ref=1
SetEnvIfNoCase Referer "^http://aaa.com" local_ref=1
<FilesMatch "\.(gif|jpg|png|css|js|swf)">
Order Allow,Deny
Allow from env=local_ref 允許上面指定域名
</FilesMatch>
</VirtualHost>
防盜鏈設(shè)置樣本:使用正則表達(dá)式
SetEnvIf Referer "^http://(.)+\.ilinux\.cn/" local_ref=1
SetEnvIf Referer "^http://(.)+\.isql\.cn/" local_ref=1
#SetEnvIf Referer "^http://(.)+\.other\.org\.cn/" local_ref=1
SetEnvIf Request_URI "/logo(.)+" local_ref=0
<FilesMatch "\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>
解釋?zhuān)?br />1. 藍(lán)色部分,表示設(shè)置允許訪問(wèn)的referer地址,第一行的意思為所有http協(xié)議訪問(wèn),以.ilinux.cn結(jié)尾的域名地址,第二行類(lèi)似,只是換成 了.isql.cn,表問(wèn)我前面的鬼符是什么,不懂得可以去翻正則表達(dá)式的研究文獻(xiàn),不想深究的可以照貓畫(huà)虎設(shè)置自己的網(wǎng)站。
2. 綠色部分,表示不在上述引用域名范圍內(nèi),但可以被放行的特例,本例中表示網(wǎng)站/目錄,所有以logo開(kāi)頭的文件(用作允許其它網(wǎng)站的友情連接引用本站logo)。
3. 橙色部分是設(shè)置反盜鏈的關(guān)鍵部分,上面每一個(gè)設(shè)置都聯(lián)系到了local_ref這個(gè)環(huán)境變量,只有這個(gè)變量為1,則允許被引用,否則顯示一個(gè)X。
4. 紫色部分設(shè)置了哪些擴(kuò)展名的文件加入反盜鏈的規(guī)則。第二種方法:
使用rewirte方式:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn$ [NC]
RewriteRule .*\.(gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.ilinux.cn [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,將被重定向到首頁(yè).
包括以下代碼:
SetEnvIfNoCase Referer "^http://google\.com/" local_ref=1
<FilesMatch "\.(jpg)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 123.123.123.123
</FilesMatch>
如果你的網(wǎng)址是www.myst.cn就改為
SetEnvIfNoCase Referer "^http://www\.myst\.com/" local_ref=1
<FilesMatch "\.(jpg)">
這意思是說(shuō)防止人家連結(jié)你的jpg檔案.可以增修為
<FilesMatch "\.(jpg|zip|rar)">
ps.最后一個(gè)不使用區(qū)各線(xiàn)
Allow from 127.0.0.1
這表示允許連結(jié)主機(jī)的IP。
你要是默認(rèn)其他網(wǎng)站可以連結(jié)的話(huà),就填入該主機(jī)IP,把上述的code儲(chǔ)存為.htaccess然后放入你安裝的目錄下即可。
AllowOverride All
-----------------------------------------------------------------------------------------------------------------------------------------------------------
話(huà)說(shuō)現(xiàn)在建站真不容易,想好好搞一個(gè)站,總會(huì)被人WC的采集,盜鏈,攻擊,無(wú)人值守的垃圾站比苦心經(jīng)營(yíng)的站收入還要可觀。所以保衛(wèi)好自己的服務(wù)器是一件很重要的工作。
小站雷當(dāng)(mb5u.Com)剛 剛上線(xiàn),立馬受到很多朋友的支持和擁護(hù)。一開(kāi)始本來(lái)準(zhǔn)備選擇使用FTP作為下載服務(wù)器的,不過(guò)過(guò)了幾天就發(fā)現(xiàn)很多都是通過(guò)盜鏈的方式來(lái)FTP下載。這下服 務(wù)器在持續(xù)性全速提供上傳,但是網(wǎng)站的頁(yè)面瀏覽量卻少得可憐。因?yàn)镕TP天生不能放盜鏈的特性所以只能考慮放棄使用,最后決定用HTTP下載來(lái)替代。
直接用HTTP服務(wù)器下載也不是很容易的事。最開(kāi)始在IIS里面配置,IIS只能設(shè)定最大下載速度和最大連接數(shù),這對(duì)于一些使用下載工具一來(lái)就開(kāi) 50+線(xiàn)程霸道下載的朋友明顯是防不住的。網(wǎng)上搜了N久就發(fā)現(xiàn)一個(gè)用Delphi寫(xiě)的看不懂的ISAPI Filter以及別的收費(fèi)軟件若干。試過(guò)之后都起不了作用,也便放棄了,最后發(fā)現(xiàn)Apache有這些開(kāi)源的功能模塊,最終打造出完美限制的HTTP下載服 務(wù)器。
首先說(shuō)說(shuō)完美限制的意思:防盜鏈、限制客戶(hù)端下載線(xiàn)程數(shù),限制下載帶寬。下面一一介紹怎么在Apache里面實(shí)現(xiàn)這些功能。
防盜鏈
傳統(tǒng)的防盜鏈都是通過(guò)Referer來(lái)判斷用戶(hù)來(lái)路的,不過(guò)這樣的方法對(duì)于下載工具來(lái)說(shuō)形同虛設(shè),因?yàn)楝F(xiàn)在的下載工具早就能偽造Referer了。
現(xiàn)在一些流行的防盜鏈的方式都是用在瀏覽頁(yè)面的時(shí)候產(chǎn)生一個(gè)隨機(jī)驗(yàn)證碼,在用戶(hù)點(diǎn)擊連接的時(shí)候服務(wù)器會(huì)驗(yàn)證這個(gè)驗(yàn)證碼是否有效從而決定是否允許下載。或者就是用某些方法把文件實(shí)際地址進(jìn)行偽裝。不過(guò)我覺(jué)得這些都不怎么好用,我用了一個(gè)簡(jiǎn)單有效的方式來(lái)實(shí)現(xiàn)防盜鏈。
其實(shí)就是用Cookie,配合Apache的URL Rewrite模塊很簡(jiǎn)單的就能實(shí)現(xiàn)防盜鏈下載。
首先在瀏覽頁(yè)面的時(shí)候,會(huì)向客戶(hù)端發(fā)送一個(gè)特別的Cookie,例如“Site=mb5u.Com“,盜鏈而來(lái)的將沒(méi)有這個(gè)Cookie。
在Apache的httpd.conf文件里面搜索:
#LoadModule rewrite_module modules/mod_rewrite.so
把它前面的#去掉,再找到<Directory />塊,在里面加入類(lèi)似如下代碼:
<Directory />
# Other configurations …
RewriteEngine On # 啟動(dòng)URL Rewrite引擎
RewriteCond %{HTTP_COOKIE} !^.*(?:Site=mb5u.Com).*$ # 對(duì)于Cookie里面沒(méi)有特殊記錄的請(qǐng)求進(jìn)行重定向
RewriteRule ^.*$ error.html # 將非法訪問(wèn)重定向到錯(cuò)誤頁(yè)面
</Directory>
這樣如果一個(gè)盜鏈而來(lái)的請(qǐng)求將會(huì)因?yàn)闆](méi)有特殊Cookie而被重定向到錯(cuò)誤頁(yè)面,就算實(shí)際地址暴露也不怕。至于這個(gè)Cookie的內(nèi)容是什么以及有效時(shí)間完全可以由管理員自己來(lái)設(shè)定,也就是說(shuō)下載工具也沒(méi)法偽造,從而防止了服務(wù)器資源被盜鏈的危險(xiǎn)。
限制客戶(hù)端多線(xiàn)程下載
限制多線(xiàn)程現(xiàn)在需要用到一個(gè)Apache的擴(kuò)展模塊mod_limitipconn,這里是作者的官方網(wǎng)站http://dominia.org/djao/limitipconn2.html,先下載適合自己版本的模塊文件到Apache安裝目錄下的modules目錄下面,然后在httpd.conf文件中搜索:
#LoadModule status_module modules/mod_status.so
把它前面的#去掉,再加入:
ExtendedStatus On
LoadModule limitipconn_module modules/mod_limitipconn.dll # 如果你下載的不是Win版,請(qǐng)把后面的文件名改為你所下載的文件名
<IfModule mod_limitipconn.c>
<Location /> # 這里表示限制根目錄,即全部限制,可以根據(jù)需要修改
MaxConnPerIP 2 # 這里表示最多同時(shí)兩個(gè)線(xiàn)程
NoLimit html/* # 這里表示html目錄下不受限制
</Location>
</IfModule>
這樣來(lái)自同一客戶(hù)端的超過(guò)2個(gè)的線(xiàn)程請(qǐng)求將被拒絕,從而限制了客戶(hù)端的多線(xiàn)程下載。
限制下載帶寬
這個(gè)同樣需要擴(kuò)展模塊支持,模塊是mod_bw,在作者的官方網(wǎng)站http://ivn.cl/apache/可以下載到。同樣也是放入modules目錄下面,然后在httpd.conf文件中加入:
LoadModule bw_module modules/mod_bw.dll
再找到<Directory />塊,加入:
<Directory />
# Other configurations …
BandwidthModule On # 啟動(dòng)帶寬限制
ForceBandwidthModule On # 啟動(dòng)帶寬限制
MaxConnection all 2000 # 最大連接數(shù)2000
Bandwidth all 200000 # 單個(gè)客戶(hù)端最大帶寬200KB
</Directory>
這樣限制了同時(shí)最多2000個(gè)連接數(shù),每個(gè)客戶(hù)端最大200KB的下載帶寬。
到此,我們的完美限制的HTTP下載服務(wù)器就配置完成了,重新啟動(dòng)你的Apache這些功能便能生效了。因?yàn)锳pache和這些模塊都是開(kāi)源免費(fèi) 的,我們不需要為此掏一分錢(qián),不用去購(gòu)買(mǎi)那些第三方的軟件,只是需要多去了解一下這些軟件的使用說(shuō)明。不要一切都祈禱有現(xiàn)成美好的東西,自己動(dòng)手做一次會(huì) 有不一樣的收獲
- 推薦!各類(lèi)建站程序偽靜態(tài)規(guī)則代碼
- 詳細(xì)的DedeCMS(織夢(mèng))目錄權(quán)限安全設(shè)置教程
- iis安全設(shè)置全方位教程
- 巧妙出招致勝服務(wù)器管理
- Win Server 2003個(gè)人網(wǎng)絡(luò)服務(wù)器安全攻略
- Windows 2003校園Web服務(wù)器常見(jiàn)問(wèn)題
- 清除IIS配置文件后門(mén)隱患
- Web服務(wù)器和應(yīng)用程序服務(wù)器有什么區(qū)別
- 虛擬主機(jī)下asp.net 2.0的導(dǎo)航控件treeview,menu等出錯(cuò)
- IIS6.0服務(wù)器架站無(wú)法訪問(wèn)解決方案總結(jié)
- 圖解支持多語(yǔ)言環(huán)境的IIS服務(wù)器配置
- IIS服務(wù)器排錯(cuò)指南及錯(cuò)誤代碼大全
Web服務(wù)器教程Rss訂閱服務(wù)器教程搜索
Web服務(wù)器教程推薦
- 用主機(jī)頭名法實(shí)現(xiàn)一個(gè)IP建多個(gè)Web站點(diǎn)
- IIS下PHP的ISAPI和FastCGI比較
- 高手整理的IIS FAQ
- 關(guān)于IIS連接數(shù)和在線(xiàn)人數(shù)的詳細(xì)說(shuō)明
- 詳細(xì)的DedeCMS(織夢(mèng))目錄權(quán)限安全設(shè)置教程
- 完美綠色的個(gè)人服務(wù)器:HTTP File Server
- apache apxs
- 在IIS7中應(yīng)用Application Request Routing配置反向代理
- 最完的htaccess文件用法收集整理
- 簡(jiǎn)單十大步驟保護(hù)IIS Web服務(wù)器安全
- 相關(guān)鏈接:
- 教程說(shuō)明:
Web服務(wù)器教程-apache 防盜鏈,限帶寬和連接數(shù)。