Un intercambio de código de ataque ASP anti-CC más completo, que utiliza principalmente la sesión para juzgar. Copie el código de código de la siguiente manera:
<%
Dim CC_Info(4),strInfo,strTemp
Si sesión (CC_Info) = entonces
CC_Info(0) = cclog.txt 'Nombre del archivo de registro
CC_Info(1) = Solicitud.Variables del servidor(HTTP_X_FORWARDED_FOR)
CC_Info(2) = Solicitud.Variables del servidor(REMOTE_ADDR)
CC_Info(3) = 10 'Prohibir actualizar la página actual en N segundos
CC_Info(4) = badip.txt 'nombre del archivo de la lista negra de IP
Sesión(CC_Info) = CC_Info(0) &|& CC_Info(1) &|& CC_Info(2) &|& CC_Info(3) &|& CC_Info(4)
Demás
strInfo = Dividir(Sesión(CC_Info),|)
CC_Info(0) = cadenaInfo(0)
CC_Info(1) = cadenaInfo(1)
CC_Info(2) = cadenaInfo(2)
CC_Info(3) = cadenaInfo(3)
CC_Info(4) = cadenaInfo(4)
Terminar si
Const chkRefresh = 1 '0 desactiva la antiactualización
Const chkProxy = 1 '0 desactiva la verificación de proxy
Const chkBadIP = 1 '0 desactiva la lista negra de IP
Si sesión (BadIP) = entonces
strInfo = LeerArchivo(CC_Info(4))
Si strInfo = Entonces strInfo = chinavb.net
Sesión (IP mala) = strInfo
Demás
strInfo = Sesión (IP mala)
Terminar si
'/*Juicio de primera capa, prohibir la actualización en N segundos*/
Si chkRefresh = 1 Entonces
Si sesión (RefreshTime) = entonces
Sesión (Hora de actualización) = Ahora ()
Demás
Si DateDiff(s, Session(RefreshTime), Now()) <CInt(CC_Info(3)) Entonces
Response.Write (El sistema está ocupado, ¡inténtelo de nuevo más tarde! Código de error 001)
Respuesta.Fin()
Demás
Sesión (Hora de actualización) = Ahora ()
Terminar si
Terminar si
Terminar si
'/*El segundo nivel de juicio, el agente prohíbe ver*/
Si chkProxy = 1 Entonces
Si CC_Info(1) <> Entonces
Si InStr(strInfo,CC_Info(1)) = 0 Entonces
strTemp = CC_Info(1) y vbCrLf
Si InStr(strInfo,CC_Info(2)) = 0 Entonces
strTemp = strTemp & [ & CC_Info(2) & ] & vbCrLf
Terminar si
GuardarRegistro CC_Info(4),strTemp
strInfo = strInfo & strTemp
Sesión (IP mala) = strInfo
Terminar si
'Registrar el registro de ataques CC
SaveLog CC_Info(0),CC_Info(1) & [& CC_Info(2) & ] & Ahora() &vbCrLf
Response.Write (El sistema está ocupado, ¡inténtelo de nuevo más tarde! Código de error 002)
Respuesta.Fin()
Terminar si
Terminar si
'/*Juicio de tercer nivel, la lista negra de IP prohíbe la visualización*/
Si chkBadIP = 1 Entonces
Si InStr(strInfo,CC_Info(2))>0 Entonces
Response.Write (El sistema está ocupado, ¡inténtelo de nuevo más tarde! Código de error 003)
Respuesta.Fin()
Terminar si
Terminar si
'Para leer=1,Para escribir=2,Para agregar=8
Función SaveLog(nombre de archivo, contenido de archivo)
En caso de error Continuar siguiente
Dim fso, este archivo
nombre de archivo = Server.MapPath(nombre de archivo)
Establecer fso = CreateObject(Scripting.FileSystemObject)
Si Err <> 0 entonces
Response.Write (Error al escribir el archivo &nombre de archivo&, ¡tal vez su sistema no admita FSO!)
Respuesta.Fin()
Terminar si
Establezca este archivo = fso.OpenTextFile (nombre de archivo, 8, Verdadero)
thisfile.write(contenido del archivo)
este archivo.Cerrar
Establecer fso = Nada
Función final
Función LeerArchivo(nombre de archivo)
En caso de error Continuar siguiente
Dim fso, este archivo
Establecer fso = CreateObject(Scripting.FileSystemObject)
Si Err <> 0 entonces
Response.Write (Error al leer el archivo &nombre de archivo&, ¡tal vez su sistema no admita FSO!)
Respuesta.Fin()
Terminar si
Establezca este archivo = fso.OpenTextFile(Server.MapPath(nombre de archivo), 1, Verdadero)
ReadFile = este archivo.ReadAll
este archivo.Cerrar
Establecer este archivo = Nada
Establecer fso = Nada
Función final
%>