ASP 防盜鏈???IIS網(wǎng)站防盜鏈下載的解決方案
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[align=left]<-% [br]’用法:在需要做防盜鏈的頁面開頭加<-%call 防盜鏈檢測(cè)("http:\\xxx.com\index.asp")%->[br]sub 防盜鏈檢測(cè)(上級(jí)路徑) [br]dim 頁面來源路徑 [br]dim 頁面來源路徑 =request.servervariables("http_referer") [br]if not 頁面來源路徑 =上級(jí)路徑 then response.end [br]end sub [br]%-> [br]
[p] “盜鏈”的定義是:此內(nèi)容不在自己服務(wù)器上,而通過技術(shù)手段,繞過別人放廣告有利益的最終頁,直接在自己的有廣告有利益的頁面上向最終用戶提供此內(nèi)容。 常常是一些名不見經(jīng)傳的小網(wǎng)站來盜取一些有實(shí)力的大網(wǎng)站的地址(比如一些音樂、圖片、軟件的下載地址)然后放置在自己的網(wǎng)站中,通過這種方法盜取大網(wǎng)站的空間和流量。[/p] [p] 為什么會(huì)產(chǎn)生盜鏈[/p] [p] 一般瀏覽有一個(gè)重要的現(xiàn)象就是一個(gè)完整的頁面并不是一次全部傳送到客戶端的。如果請(qǐng)求的是一個(gè)帶有許多圖片和其它信息的頁面,那么最先的一個(gè)http請(qǐng)求被傳送回來的是這個(gè)頁面的文本,然后通過客戶端的瀏覽器對(duì)這段文本的解釋執(zhí)行,發(fā)現(xiàn)其中還有圖片,那么客戶端的瀏覽器會(huì)再發(fā)送一條http請(qǐng)求,當(dāng)這個(gè)請(qǐng)求被處理后那么這個(gè)圖片文件會(huì)被傳送到客戶端,然后瀏覽器回將圖片安放到頁面的正確位置,就這樣一個(gè)完整的頁面也許要經(jīng)過發(fā)送多條http請(qǐng)求才能夠被完整的顯示?;谶@樣的機(jī)制,就會(huì)產(chǎn)生一個(gè)問題,那就是盜鏈問題:就是一個(gè)網(wǎng)站中如果沒有起頁面中所說的信息,例如圖片信息,那么它完全可以將這個(gè)圖片的連接到別的網(wǎng)站。這樣沒有任何資源的網(wǎng)站利用了別的網(wǎng)站的資源來展示給瀏覽者,提高了自己的訪問量,而大部分瀏覽者又不會(huì)很容易地發(fā)現(xiàn),這樣顯然,對(duì)于那個(gè)被利用了資源的網(wǎng)站是不公平的。一些不良網(wǎng)站為了不增加成本而擴(kuò)充自己站點(diǎn)內(nèi)容,經(jīng)常盜用其他網(wǎng)站的鏈接。一方面損害了原網(wǎng)站的合法利益,另一方面又加重了服務(wù)器的負(fù)擔(dān)。[/p] [p] 我遇到的盜鏈[/p] [p] 我的網(wǎng)站遇到最多的是兩類盜鏈,一是圖片盜鏈,二是文件盜鏈。曾經(jīng)有一個(gè)訪問量極大的網(wǎng)站盜鏈我網(wǎng)站的圖片,一天竟然消耗了數(shù)g的流量。同時(shí),我站放的不少幾十兆的大型軟件也常遭到文件盜鏈,大量消耗我站資源。[/p] [p] 盜鏈的解決方案[/p] [p] 其實(shí)通過web服務(wù)器的url過濾技術(shù),這個(gè)傷腦筋的問題會(huì)很容易得到解決。 [/p] [p] 如果web服務(wù)器用的是apache的話,那么使用apache自帶的url rewrite功能可以很輕松地防止各種盜鏈,其原理是檢查refer,如果refer的信息來自其他網(wǎng)站則禁止訪問所需要的資源。[/p] [p] 那么,iis支持urlrewrite嗎?[/p] [p] 答案很簡單,不支持。但是我們可以通過安裝第三方服務(wù)器擴(kuò)展讓iis支持。 [/p] [p] 目前有一種產(chǎn)品能比較好地支持iis的urlrewrite,名字叫[url=http://helicontech.com/download/]isapi_rewrite[/url]。 [/p] [p] 下載地址在: [url=http://helicontech.com/download/]http://helicontech.com/download/[/url][/p] [p] 這里只有isapi rewrite的一個(gè)[url=http://isapirewrite.com/download/isapi_rwl_0056.msi]lite版本[/url]是免費(fèi)的,其它都是trial版本。[url=http://isapirewrite.com/download/isapi_rwl_0056.msi]isapi rewrite lite[/url]的版本功能不支持虛擬站點(diǎn)配置,元數(shù)據(jù)監(jiān)測(cè)和自動(dòng)緩存清理。 但是基本的urlrewrite功能都支持。[/p] [p] 如何進(jìn)行urlrewrite的設(shè)置? [/p] [p] isapi_rewrite利用正則表達(dá)式進(jìn)行替換規(guī)則的表示。 [/p] [p] 下面是一個(gè)簡單的例子,我想讓我們的用戶輸入 [url=/test-12314.html]/test-12314.html[/url] 實(shí)際上訪問的是 [url=/test.asp?id=12314]/test.asp?id=12314[/url] 。那么我們的匹配表達(dá)式應(yīng)該是 /test-([0-9]*).html 對(duì)應(yīng)的格式化表達(dá)式應(yīng)該為 /test.asp\?id=$1 。 [/p] [p] 進(jìn)行正則表達(dá)式的編寫的時(shí)候,可以利用isapi_rewrite提供的正則表達(dá)式測(cè)試工具(默認(rèn)安裝提供),進(jìn)行調(diào)試。做好了匹配表達(dá)式和格式化表達(dá)式,我們可以把它們放到安裝目錄下的httpd.ini里面。文件保存后,不需重新啟動(dòng)iis即可生效。 [/p] [p] 對(duì)于我的網(wǎng)站,我防盜鏈的方法是在httpd.ini里面加入如下語句[/p] [p]rewritecond host: (.+)[br][br]rewritecond referer: (?!http://\1.*).*[br][br]rewriterule .*\.(?:gif|jpg|png|exe|rar|zip) /block.gif [i,o][/p] [p] 然后重啟iis,這時(shí)防盜鏈就開始起作用了,其他網(wǎng)站盜鏈過來的請(qǐng)求都會(huì)被拒絕。[/p] [p] 至此,我也終于可以擺脫了被盜鏈的煩惱了。[/p][/align] 該文章在 2010/6/27 17:30:00 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |