Una inspiración repentina ese día estaba dirigida a cadenas antirrobo
Si alguien es robado un archivo cargado normalmente, aumentará la carga de su servidor. La última vez, 164.Cc fue colgado.
Entonces piensa en contramedidas. Actualmente, hay muchos programas de cadena antirrobo, pero no son fáciles de usar y no son gratuitos ...
Entonces, solo puedes pensar en una solución tú mismo primero. Entonces, ahora mira el título y piensa en la cadena antirrobo, tal vez tengas algunas pistas.
Puedo modificar el nombre de la carpeta donde el archivo cargado se encuentra de vez en cuando, y el programa de este sitio web obtiene dinámicamente el nombre de la carpeta. De esta manera, el sitio que originalmente robó archivos en este sitio web no encontrará el archivo debido a errores de ruta, realizando así el enlace antirrobo.
Entonces, ¿cómo usar FSO para modificar el nombre de una carpeta?
Una función simple:
La copia del código es la siguiente:
<%
FunctionFldrename (NowFld, Newfld)
Nowfld = server.mappath (Nowfld)
newfld = server.mappath (newfld)
Setfso = createObject ("scripting.filesystemObject")
ifnotfso.foldereRexists (Nowfld) entonces
Response.Write ("La ruta de carpeta que debe modificarse es incorrecta o el nombre de la carpeta se ingresa incorrectamente")
demás
FSO.CopyFoldernowfld, Newfld
FSO.DeleteFolder (Nowfld)
endif
setfso = nada
Función final
%>
En general, es copiar el contenido de la carpeta actual en una nueva carpeta, y luego eliminar el contenido de la carpeta, logrando indirectamente el propósito de cambiar el nombre de la carpeta.
Este es un problema paranoico, porque al modificar el nombre de la carpeta, especialmente cuando el contenido de la carpeta de la carpeta a modificar es la cantidad de G, el tiempo de espera no es rentable en comparación con FTP modificando de forma remota el nombre.
¿Algunas personas dicen que FSO puede modificar directamente el nombre de la carpeta? No quiero hacerlo.
Aplicar esta función
<%CallFldrename ("EX01", "EX02")%>
El significado básico es modificar el nombre de la carpeta EX01 en el mismo directorio que el archivo de ejecución del programa a EX02
Aquí está mi informe de prueba local:
1. Este programa no consume el tiempo de ejecución del programa
2. Se tarda unos 50 segundos en realizar el cambio de nombre indirecto de la carpeta 1G, que en realidad es la copia del archivo y el tiempo de transferencia en el lado del servidor.
3. El consumo de CPU no es demasiado alto, alrededor del 30%
4. Si la máquina se bloquea repentinamente o se pierde la potencia en el medio del cambio de nombre, se producirán dos situaciones:
a. La nueva carpeta se crea inicialmente (la nueva carpeta no está construida), y la próxima vez que se ejecute el programa, se producirá un error: el archivo de error de tiempo de ejecución de Microsoft VBScript (0x800a003a) ya existe. En este momento, solo puede eliminar la nueva carpeta después de FTP (tratar de usar FSO para eliminar la nueva carpeta no es efectiva).
b. Se han copiado algunos archivos. La próxima vez que se ejecute el programa, el contenido de la carpeta copiado se sobrescribirá automáticamente y el contenido de la carpeta original aún existirá. La carpeta original y sus archivos se eliminarán solo después de copiar.
5. Al mismo tiempo, debe prestar atención al nombre de la nueva carpeta para evitar duplicar el nombre de la carpeta existente. Por supuesto, también puede usar el programa para juzgarlo.