Use ASP to hide file paths to achieve anti-theft chains

zhaozj2021-02-16  45

If we know the actual path of a static file such as: http://www.xx.com/download/51windows.pdf, if the server does not make special restriction settings, we can download it without effort! How can the downloader can't get his actual path when the website provides 51windows.pdf download! This article describes how to use ASP to hide the actual download path of the file.

When we manage the website file, we can put the extension the same file in the same directory, and set a more special name, such as the PDF file directory to the_pdf_file_s, saving the following code as Down.asp, his online path is http : //www.xx.com/down.asp, we can use http://www.xx.com/down.asp?filename =51windows.pdf to download this file, and the downloader can't see this file Actual download path! In Down.asp, we can also set whether the download file needs to be logged in, it is determined whether the downloaded source page is an external website, so that the file can be prevented from being stolen.

Sample code:

<%

From_url = cstr (Request.ServerVariables ("http_referer"))

Serv_url = cstr (Request.ServerVariables ("Server_Name"))

IF MID (from_url, 8, len (serv_url) <> serv_url dam

Response.write "illegal link!" 'Prevention of stealing chains

Response.end

END IF

If Request.Cookies ("Logined") = "" "" ""

Response.Redirect "/login.asp" "needs to be logged in!

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 = "" ""

Response.write "invalid file name!"

Response.end

END IF

FileExt = MID (FileName, INSTRREV (FileName, ".") 1)

SELECT CASE UCASE (Fileext)

Case "ASP", "ASA", "ASPX", "ASAX", "MDB"

Response.write "illegal operation!"

Response.end

End SELECT

Response.clear

IF LCase (Right (FileName, 3)) = "GIF" or LCase (Right (filename, 3)) = "JPG" or LCase (Right (filename, 3)) = "PNG" theResponse.contentType = "image / * "'Do not download dialog box for image files

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 'Settings PDF Type File Directory

TrueFileName = "/ THE_PDF_FILE_S /" & FileName

END IF

If LCASE (Right (filename, 3)) = "DOC" TEN 'Setup Doc Type File Directory

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 "Sets the image file directory

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

%>

转载请注明原文地址:https://www.9cbs.com/read-25936.html

New Post(0)