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