• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP防盜鏈及防下載的方法

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 20次 | 進入軟件測試論壇討論

    領測軟件測試網

    如果我們知道一個靜態文件的實際路徑如:http://www.xx.com/download/51windows.pdf,如果服務器沒有作特別的限制設置,我們就可以毫不費力的把它下載下來!當網站提供51windows.pdf下載時,怎么樣才能讓下載者無法得到他的實際路徑呢!本文就來介紹如何使用Asp來隱藏文件的實際下載路徑。

      我們在管理網站文件時,可以把擴展名一樣的文件放在同一個目錄下,起一個比較特別名字,例如放pdf文件目錄為the_pdf_file_s,把下面代碼另存為down.asp,他的網上路徑為http://www.xx.com/down.asp,我們就可以用http://www.xx.com/down.asp?FileName=51windows.pdf來下載這個文件了,而且下載者無法看到這個文件實際下載路徑的!在down.asp中我們還可以設置下載文件是否需要登陸,判斷下載的來源頁是否為外部網站,從而可以做到防止文件被盜鏈。

    示例代碼:
    <%
    From_url = Cstr(Request.ServerVariables("HTTP_REFERER"))
    Serv_url = Cstr(Request.ServerVariables("SERVER_NAME"))
    if mid(From_url,8,len(Serv_url)) <> Serv_url then
    response.write "非法鏈接!" '防止盜鏈
    response.end
    end if

    if Request.Cookies("Logined")="" then
    response.redirect "/login.asp" '需要登陸!
    end if
    Function GetFileName(longname)'/folder1/folder2/file.asp=>file.asp
    while instr(longname,"/")
    longname = right(longname,len(longname)-1)
    wend
    GetFileName = longname
    End Function
    Dim Stream
    Dim Contents
    Dim FileName
    Dim TrueFileName
    Dim FileExt
    Const adTypeBinary = 1
    FileName = Request.QueryString("FileName")
    if FileName = "" Then
      Response.Write "無效文件名!"
      Response.End
    End if
    FileExt = Mid(FileName, InStrRev(FileName, ".") + 1)
    Select Case UCase(FileExt)
      Case "ASP", "ASA", "ASPX", "ASAX", "MDB"
        Response.Write "非法操作!"
        Response.End
    End Select
    Response.Clear
    if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
    Response.ContentType = "image/*" '對圖像文件不出現下載對話框
    else
    Response.ContentType = "application/ms-download"
    end if
    Response.AddHeader "content-disposition", "attachment; filename=" & GetFileName(Request.QueryString("FileName"))
    Set Stream = server.CreateObject("ADODB.Stream")
    Stream.Type = adTypeBinary
    Stream.Open
    if lcase(right(FileName,3))="pdf" then '設置pdf類型文件目錄
    TrueFileName = "/the_pdf_file_s/"&FileName
    end if
    if lcase(right(FileName,3))="doc" then '設置DOC類型文件目錄
    TrueFileName = "/my_D_O_C_file/"&FileName
    end if
    if lcase(right(FileName,3))="gif" or lcase(right(FileName,3))="jpg" or lcase(right(FileName,3))="png" then
    TrueFileName = "/all_images_/"&FileName '設置圖像文件目錄
    end if
    Stream.LoadFromFile Server.MapPath(TrueFileName)
    While Not Stream.EOS
      Response.BinaryWrite Stream.Read(1024 * 64)
    Wend
    Stream.Close
    Set Stream = Nothing
    Response.Flush
    Response.End
    %>


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>