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