posts - 22,comments - 35,trackbacks - 0
          我們可以用xmlhttp來讀取文件信息,然后轉(zhuǎn)移到客戶端,這樣可以隱藏文件的真實地址。從而起到一點點的防止盜鏈的作用。

          在這個文件中,我們可以用很多方法來判斷用戶身份,包括來源的url,cookie數(shù)據(jù),甚至是ip標(biāo)志等。

          <%@ codepage=65001%>

          <%

          Response.Buffer=False

          re_url = Lcase(Request.ServerVariables("HTTP_REFERER"))

          '獲得來源頁面的url

          mydomain = Lcase(Request.ServerVariables("SERVER_NAME"))

          '獲得本頁面域名 也可以直接指定

          if mid(re_url,8,len(mydoain)) <> mydomian then

          response.write "URL wrong"

          'or redirect

          response.end()

          end if

          %>

          //niceidea 簽名留念

          這個是用的最多的防止盜鏈的方法,檢查鏈入的頁面是否是外地人,如果是外部鏈入,拒絕下載。

          這里更保險的辦法是利用cookie驗證,就象通常的點擊廣告后才可以看到地址的方法一樣。

          最好的辦法是裝一個防盜鏈軟件,asp腳本比較是基于iis的。<%

          dim file_url,objXMLHTTP

          file_url="http://localhost/11.rar"

          '我們可以從數(shù)據(jù)庫中讀取軟件

          Set objXMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")

          objXmlHttp.open "GET",file_url,false

          objXmlHttp.send()If objXMLHTTP.Status<>"200" Then

          response.write("file missing。")

          else

          Response.ContentType = "application/octet-stream"

          Response.AddHeader "content-disposition", "attachment; filename=" & "11.rar"

          Response.BinaryWrite objXMLHTTP.responseBody

          End IfSet obiXMLHTTP=nothing

          response.end()

          %>這個辦法有明顯的弊端,它需要在服務(wù)器內(nèi)部交換一次數(shù)據(jù),從而加重了服務(wù)器的負(fù)擔(dān),類似于開了一個暫時的代理;這里最好設(shè)置response的緩沖屬性為false,iis6.0的asp緩存大小為4m,大的文件或者多個文件的緩沖很容易讓服務(wù)器當(dāng)機。

          不過它的好處是防止盜鏈,因為這里沒有發(fā)送任何關(guān)于真實地址的信息到最終的客戶端。

          更有效的使用途徑是解決某些站點的圖片防盜鏈功能.

          例如網(wǎng)易相冊,就有防止跨域盜鏈的功能。

          下面的文件:

          <html>

          <body>

          <img src="http://img301.photo.163.com/luomin_dvd/35412650/__scale__1_954873822.jpg"/>

          <img src="getimg.asp?imgsrc=http://img301.photo.163.com/luomin_dvd/35412650/__scale__1_954873822.jpg"/>

          </body>

          </html>

          然后另寫一個getimg.asp

          <%

          response.buffer=True

          dim file_url

          file_url=request.querystring("imgsrc")

          Set objXMLHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP")

          objXmlHttp.open "GET",file_url,false

          objXmlHttp.send()

          Response.ContentType = "image/jepg"

          Response.BinaryWrite objXMLHTTP.responseBody

          set objXMLHTTP=nothing

          %>

          你會發(fā)現(xiàn),第一張圖片是個×,第二張則正常。

          在使用getimg.asp的時候,注意你的iis是否安裝了防盜鏈軟件,最好不要讓別人盜鏈了。
          posted on 2006-07-12 18:14 kelven 閱讀(359) 評論(0)  編輯  收藏 所屬分類: Ajax
          主站蜘蛛池模板: 军事| 同心县| 禄劝| 宁都县| 天长市| 麻阳| 中江县| 静宁县| 黄陵县| 常熟市| 静乐县| 常州市| 商城县| 原平市| 新田县| 开平市| 大英县| 晋宁县| 宜川县| 秀山| 兰州市| 通海县| 鄢陵县| 霞浦县| 广宗县| 镇宁| 忻城县| 黑龙江省| 苏州市| 长治县| 英吉沙县| 房产| 潜江市| 阳高县| 浦县| 喀喇| 宁津县| 马尔康县| 塘沽区| 丰都县| 共和县|