Use ASP para ocultar os caminhos de arquivo para realizar a cadeia anti-roubo
Se soubermos o caminho real de um arquivo estático, como: http://www.xx.com/download/51windows.pdf, se o servidor não tiver restrições especiais, podemos baixá -lo sem esforço! Quando o site fornece download 51Windows.pdf, como o downloader não pode conseguir seu caminho real! Este artigo apresentará como usar o ASP para ocultar o caminho de download real de um arquivo.
Ao gerenciar os arquivos do site, podemos colocar arquivos com a mesma extensão no mesmo diretório e fornecer um nome especial, por exemplo, colocar o diretório de arquivos PDF como o_PDF_FILE_S e salvar o código a seguir como Down.asp. Seu caminho online é http://www.xx.com/down.asp. Podemos usar http://www.xx.com/down.asp?filename=51Windows.pdf para baixar esse arquivo, e o downloader não pode ver o caminho de download real deste arquivo! Em Down.asp, também podemos definir se o arquivo baixado precisa ser conectado e determinar se a página de origem baixada é um site externo, para impedir que o arquivo seja roubado.
Código de exemplo:
<%
From_url = cstr (request.Servervariables ("http_referer")))
Serv_url = cstr (request.servervariables ("server_name")))
ifmid (from_url, 8, len (serv_url)) <> serv_urlthen
Response.Write "Link ilegal!" 'Evite a roubo de links
resposta.END
endif
ifRequest.cookies ("login") = "" então
Response.Redirect "/Login.asp" 'precisa fazer login!
endif
FunctionGetFilename (LongName) '/pasta1/pasta2/file.asp => file.asp
whileInstr (LongName, "/")
longname = certo (LongName, Len (LongName) -1)
Wend
GetFilename = longname
Função final
Dimstream
DimContents
Dimfilename
DimtrueFilename
DimfileExt
ConstadTypeBinary = 1
FileName = request.QueryString ("nome do arquivo")
iffilename = "" então
Response.Write "Nome do arquivo inválido!"
Resposta.END
Endif
FILEEXT = MID (nome do arquivo, Instrrev (nome do arquivo, ".")+1)
SelectCaseucase (FileExt)
Caso "asp", "asa", "aspx", "asax", "mdb"
Response.Write "Operação ilegal!"
Resposta.END
EndSelect
Response.clear
iflcase (direita (nome do arquivo, 3)) = "gif" orlcase (direita (nome do arquivo, 3)) = "jpg" orlcase (direita (nome do arquivo, 3)) = "png" então
Response.ContentType = "Image/*
outro
Response.ContentType = "Application/Ms-download"
endif
Response.AddHeader "Content-Disposition", "Applement; FileName =" & GetFileName (request.QueryString ("FileName")))
SetStream = server.createObject ("adodb.stream")
Stream.Type = adTypeBinary
Stream.open
iflcase (direita (nome do arquivo, 3)) = "pdf", então 'defina o diretório de arquivos do tipo PDF
Truefilename = "/the_pdf_file_s/" & filename