La prevención de enlaces directos ASP siempre ha sido un dolor de cabeza para los amigos que crean sitios web con fines publicitarios. Los enlaces directos afectan gravemente el funcionamiento normal de los servidores y sitios web. Hoy, echemos un vistazo a un método para implementar la prevención de enlaces directos ASP. . Bar.
Si conocemos la ruta real de un archivo estático como: http://www.xx.com/download/webjx.pdf, y si el servidor no establece ninguna restricción especial, ¡podemos descargarlo sin esfuerzo! Cuando el sitio web proporciona la descarga de webjx.pdf, ¿cómo podemos evitar que el descargador obtenga su ruta real? Este artículo presentará cómo utilizar Asp para ocultar la ruta de descarga real de archivos.
Cuando administramos archivos de sitios web, podemos colocar archivos con la misma extensión en el mismo directorio y darles un nombre especial. Por ejemplo, el directorio donde se colocan los archivos pdf es the_pdf_file_s y el siguiente código se guarda como down.asp. y su ruta en línea es http://www.xx.com/down.asp, podemos usar http://www.xx.com/down.asp?FileName=webjx.pdf para descargar este archivo y el descargador. No puedo ver este archivo ¡La ruta de descarga real! En down.asp, también podemos establecer si la descarga de archivos requiere iniciar sesión y determinar si la página de origen descargada es un sitio web externo, evitando así que se vinculen los archivos.
<% From_url = Cstr(Request.ServerVariables(HTTP_REFERER)) Serv_url = Cstr(Solicitud.ServerVariables(SERVER_NAME)) si mid(From_url,8,len(Serv_url)) <> Serv_url entonces respuesta.escribir ¡Enlace ilegal! ''Evitar enlaces directos respuesta.fin terminar si si Request.Cookies(Iniciado sesión)= entonces Response.redirect /login.asp ''¡Requiere iniciar sesión! terminar si Función GetFileName(nombre largo)''/carpeta1/carpeta2/archivo.asp=>archivo.asp mientras que instr(nombre largo,/) nombre largo = right(nombre largo,len(nombre largo)-1) encaminarse a GetFileName = nombre largo Función final Corriente tenue Contenido oscuro Nombre de archivo oscuro Dim TrueFileName Atenuar extensión de archivo Tipo de anuncio constanteBinario = 1 Nombre de archivo = Solicitud.QueryString(Nombre de archivo) si NombreDeArchivo = Entonces Response.Write ¡Nombre de archivo no válido! Respuesta.Fin terminar si FileExt = Mid(Nombre de archivo, InStrRev(Nombre de archivo, .) + 1) seleccione Caso UCase (FileExt) Caso ASP, ASA, ASPX, ASAX, MDB Respuesta. ¡Escribe una operación ilegal! Respuesta.Fin Finalizar selección Respuesta.Borrar si lcase(right(FileName,3))=gif o lcase(right(FileName,3))=jpg o lcase(right(FileName,3))=png entonces Response.ContentType = image/* ''No aparece ningún cuadro de diálogo de descarga para archivos de imagen demás Response.ContentType = aplicación/descarga ms terminar si Response.AddHeader disposición de contenido, archivo adjunto = & GetFileName(Request.QueryString(FileName)) Establecer secuencia = servidor.createObject(ADODB.Stream) Stream.Type = adTypeBinary Stream.Abierto si lcase(right(FileName,3))=pdf entonces ''Establecer directorio de archivos de tipo pdf TrueFileName = /the_pdf_file_s/&FileName terminar si si lcase(right(FileName,3))=doc entonces ''Establezca el directorio de archivos de tipo DOC TrueFileName = /my_D_O_C_file/&FileName terminar si si lcase(right(FileName,3))=gif o lcase(right(FileName,3))=jpg o lcase(right(FileName,3))=png entonces TrueFileName = /all_images_/&FileName ''Establecer el directorio del archivo de imagen terminar si Stream.LoadFromFile Server.MapPath(TrueFileName) Mientras no se transmite.EOS Respuesta.BinaryWrite Stream.Read(1024 * 64) Encaminarse a Transmitir.Cerrar Establecer transmisión = Nada Respuesta.Flush Respuesta.Fin %> |