Use ASP para ocultar rutas de archivos para realizar la cadena antirrobo
Si conocemos la ruta real de un archivo estático como: http://www.xx.com/download/51windows.pdf, si el servidor no tiene restricciones especiales, ¡podemos descargarlo sin esfuerzo! Cuando el sitio web proporciona descarga de 51Windows.pdf, ¿cómo puede el descargador no obtener su camino real? Este artículo presentará cómo usar ASP para ocultar la ruta de descarga real de un archivo.
Al administrar los archivos del sitio web, podemos colocar archivos con la misma extensión en el mismo directorio y dar un nombre especial, por ejemplo, colocar el directorio de archivos PDF como the_pdf_file_s, y guardar el siguiente código como down.asp. Su ruta en línea es http://www.xx.com/down.asp. Podemos usar http://www.xx.com/down.asp?filename=51windows.pdf para descargar este archivo, ¡y el descargador no puede ver la ruta de descarga real de este archivo! En Down.asp, también podemos establecer si el archivo descargado debe iniciarse y determinar si la página fuente descargada es un sitio web externo, para evitar que el archivo sea robado.
Código de muestra:
<%
From_url = cstr (request.serverVariables ("http_referer"))
Serv_url = cstr (request.servervariables ("server_name"))
ifmid (from_url, 8, len (serv_url)) <> serv_urltthen
Respuesta. Escribe "Enlace ilegal!" 'Prevenir el robo de enlaces
respuesta.
endif
ifrequest.cookies ("loged") = "" entonces
Respuesta.Redirect "/Login.asp" '¡Necesita iniciar sesión!
endif
FunctetgetFileName (longName) '/carpetas1/carpeta2/file.asp => file.asp
WhenInst (LongName, "/")
longName = Right (LongName, Len (LongName) -1)
encaminarse a
GetFileName = longName
Función final
Dimstream
Dimcontents
Nombre de dimfilenia
DimtrueFilename
Dimfileext
Constadtypebinary = 1
FileName = request.QueryString ("nombre de archivo")
iffilename = "" entonces
Response.write "¡Nombre de archivo no válido!"
Respuesta.
Endif
Fileext = mid (nombre de archivo, instrrev (nombre de archivo ".")+1)
SelectCaseUcase (FileExt)
Caso "ASP", "ASA", "ASPX", "ASAX", "MDB"
Respuesta. Escribe "¡Operación ilegal!"
Respuesta.
EndSelectar
Respuesta.
iflcase (derecho (nombre de archivo, 3)) = "gif" orlcase (derecho (nombre de archivo, 3)) = "jpg" orlcase (derecho (nombre de archivo, 3)) = "png" entonces
Response.ContentType = "Image/*" 'No aparece el cuadro de diálogo de descarga para archivos de imagen
demás
Respuesta.ContentType = "Application/MS-Download"
endif
Response.AddHeader "Content-Disposition", "Adjunto; FileName =" & GetFileName (request.QueryString ("nombre de archivo"))
Setstream = server.createObject ("ADODB.Stream")
Stream.type = adtypeBinary
Transmisión. Abre
iflcase (derecha (nombre de archivo, 3)) = "PDF" entonces 'Establezca el directorio de archivos de tipo PDF
TrueFileName = "/the_pdf_file_s/" & filename