IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類(lèi)|軟件專(zhuān)題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置:首頁(yè)服務(wù)器WEB服務(wù)器 → IIS真正能用的ISAPI-Rewrite防盜鏈規(guī)則寫(xiě)法

IIS真正能用的ISAPI-Rewrite防盜鏈規(guī)則寫(xiě)法

時(shí)間:2015/6/28來(lái)源:IT貓撲網(wǎng)作者:網(wǎng)管聯(lián)盟我要評(píng)論(0)

本規(guī)則支持白名單排除式防盜鏈,搜索引擎友好不屏蔽,被盜鏈后的錯(cuò)誤提示轉(zhuǎn)向,支持各種文件類(lèi)型,經(jīng)作者親驗(yàn)真的能用,第一時(shí)間在itmop.com原創(chuàng)發(fā)表,請(qǐng)繼續(xù)往下閱讀。

近來(lái)小站遇到了盜鏈問(wèn)題,至使網(wǎng)站的流量枉費(fèi)流失,于是被迫準(zhǔn)備為服務(wù)器安裝防盜鏈機(jī)制以挽救本就不寬裕的帶寬。通過(guò)G.CN和B.CN搜索后得出了幾種不同的方案,例如網(wǎng)站程序的URL偽裝法、服務(wù)器端的收費(fèi)插件法和ISAPI-REWRITE的規(guī)則過(guò)濾法等,考慮自身網(wǎng)站結(jié)構(gòu)和錢(qián)包的困難問(wèn)題,最終選擇了后者,即現(xiàn)在流行用來(lái)做偽靜態(tài)的ISAPI Rewrite書(shū)寫(xiě)規(guī)則來(lái)實(shí)現(xiàn)我的防盜鏈"夢(mèng)想"。

為什么說(shuō)是夢(mèng)想呢?首先表示惋惜,懶人我搜來(lái)了一大票經(jīng)過(guò)無(wú)數(shù)次轉(zhuǎn)載而來(lái)的文章,把現(xiàn)呈的代碼應(yīng)用后發(fā)現(xiàn)要么根本不起作用,要么就是效果達(dá)不到我想要的,幾經(jīng)周折后終于把這原本認(rèn)為可以輕易借鑒照搬的防盜鏈給完成了,恨那些只會(huì)轉(zhuǎn)載和偽原創(chuàng)的站長(zhǎng)們,自己也不試試就拿來(lái)填充,害了多少人浪費(fèi)了大把的時(shí)間。

經(jīng)過(guò)惡補(bǔ)正則表達(dá)式相關(guān)教程并對(duì)前輩們留下的規(guī)則進(jìn)行修改后,以下ISAPI Rewrite已經(jīng)在我的服務(wù)器上正常運(yùn)作。

經(jīng)測(cè)試四種情況正常,即站內(nèi)鏈接正常,白名單里的鏈接正常,盜鏈者鏈接屏蔽,搜索引擎鏈接正常。

詳細(xì)如下;

一、完全屏蔽所有盜鏈來(lái)源的寫(xiě)法(如已有其它規(guī)則,則置于已有規(guī)則的上面)

RewriteCond Host: (.+)
RewriteCond Referer: (?!https://\1.*).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

老板,來(lái)個(gè)小解:

第一行通過(guò)RewriteCond的HOST定義其下的規(guī)則所適用的請(qǐng)求主機(jī)范圍。

第二行通過(guò)RewriteCond的Referer定義規(guī)則適用的請(qǐng)求來(lái)源地址,我們都知道任何通過(guò)互聯(lián)網(wǎng)方式訪問(wèn)網(wǎng)站都會(huì)留下Referer的痕跡,就好像我們?cè)?a href="http://europeautoinsurance.com/key/iis/" target="_blank">iis日志里看到的一樣。這里的(?!https://\1.*).*意思就是判斷所有通過(guò)http協(xié)義發(fā)來(lái)的請(qǐng)求,都要應(yīng)用規(guī)則。

第三行通過(guò)RewriteRule定義防盜鏈文件的后綴,這里僅是圖片后綴,需要的可以添加mp3,rar等其它所有后綴。后面的/block.gif表示如果遇上這些后綴的文件被盜鏈后的轉(zhuǎn)向,這里轉(zhuǎn)向/根目錄的block.gif,可以是HTML等任何文件。如果只想某個(gè)文件夾下面的文件不被盜鏈,只需要加上路徑就可以。例如不想images和pic目錄下的文件被盜,但其它可以。就要改寫(xiě)成:

RewriteRule (/images/|/pic/).*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

這種情況主要是有些站長(zhǎng)在別人友情鏈接里的圖片地址是在自己這的。

最后面的[I,O,N],I表示不區(qū)分大小寫(xiě),O表示對(duì)URL進(jìn)行標(biāo)準(zhǔn)化,可能是用來(lái)處理Unicode編碼的地址(例如包含中文的URL)以及QueryString的內(nèi)容,N表示重新從站點(diǎn)請(qǐng)求文件而不是從本地緩存讀取文件,目的是防止當(dāng)用戶(hù)訪問(wèn)了盜你鏈的網(wǎng)站后,再回到你的網(wǎng)站也出現(xiàn)盜鏈提示。

提示,由于此規(guī)則是通過(guò)Referer來(lái)獲取帶有https://字樣的地址進(jìn)行過(guò)濾,因此它無(wú)法防范其它協(xié)議的盜鏈,比如迅雷下載。但通過(guò)任何瀏覽器直接訪問(wèn),只要是HTTP協(xié)義的,通殺。

以上關(guān)于RewriteCond和RewriteRule的作用僅是本人的土法理解,歡迎在這方面有專(zhuān)業(yè)研究的朋友在評(píng)論中指正,以免誤導(dǎo),另外如果遇到isapi-rewrite版本問(wèn)題,只要保證后面的正則式寫(xiě)法正確就行。

二、排除性防盜鏈寫(xiě)法

RewriteCond Host: (.+)
RewriteCond Referer: (?!https://\1.*).*
RewriteCond Referer: (?!https://(.*)(\.baidu\.com|\.google\.com|\.google\.cn|\.g\.cn|\.gougou\.com|\.soso\.com|\.sogou\.com|\.youdao\.com|\.bing\.com|\.yahoo\.com|\.yahoo\.cn|\.eojoo\.com)).*
RewriteRule .*\.(?:gif|jpg|jpeg|png|bmp) /block.gif [I,O,N]

老板,來(lái)個(gè)小解:

第一行同上

第二行同上

第三行通過(guò)正則表達(dá)式對(duì)第二行中的請(qǐng)求協(xié)義地址進(jìn)行過(guò)濾,這里按上面的寫(xiě)法,過(guò)濾了所有流行的搜索引擎,當(dāng)然也包括你自己的站,或是你同臺(tái)服務(wù)器其它的站。每個(gè)不同的域名寫(xiě)法是\.baidu\.com,多個(gè)有|號(hào)相隔。如果是IP則這樣寫(xiě)100\.100\.100\.100

第四行同上

這樣說(shuō)明應(yīng)該不難理解吧,直接拿去用,按著原有格式改。

規(guī)則中出現(xiàn)的正則表達(dá)式符號(hào)小解:

. 表示匹配除換行符以外的任意字符

+ 表示前面的字符可以出現(xiàn)一到任意多次

* 表示前面的字符可以出現(xiàn)零到任意多次

() 表示一個(gè)表達(dá)組,可以拿它和加減乘除法一起理解

?! 表示斷言這個(gè)符號(hào)后面的字符如果出現(xiàn)則不再進(jìn)行接下去的匹配

\ 表示轉(zhuǎn)義符號(hào),比如網(wǎng)址中的.是規(guī)則內(nèi)置的運(yùn)算符號(hào),要把它通過(guò)\轉(zhuǎn)義成字符。

| 表示或者,用于連接多種可能

通過(guò)以上這"亂七八糟"的符號(hào),竟然組成了如此強(qiáng)大的規(guī)則,感嘆!

關(guān)鍵詞標(biāo)簽:IIS,ISAPI-Rewrite,防

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門(mén)文章 ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈ISAPI Rewrite實(shí)現(xiàn)IIS圖片防盜鏈IIS6.0下配置MySQL+PHP5+Zend+phpMyAdminIIS6.0下配置MySQL+PHP5+Zend+phpMyAdmin在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻在Windows服務(wù)器上快速架設(shè)視頻編解碼器全攻win2000server IIS和tomcat5多站點(diǎn)配置win2000server IIS和tomcat5多站點(diǎn)配置

相關(guān)下載

人氣排行 XAMPP配置出現(xiàn)403錯(cuò)誤“Access forbidden!”的解決辦法WIN2003 IIS6.0+PHP+ASP+MYSQL優(yōu)化配置訪問(wèn)網(wǎng)站403錯(cuò)誤 Forbidden解決方法Server Application Unavailable的解決辦法如何從最大用戶(hù)并發(fā)數(shù)推算出系統(tǒng)最大用戶(hù)數(shù)報(bào)錯(cuò)“HTTP/1.1 400 Bad Request”的處理方法http 500內(nèi)部服務(wù)器錯(cuò)誤的解決辦法(windows xp + IIS5.0)Windows Server 2003的Web接口