Un partage de code d'attaque anti-CC asp plus complet, utilisant principalement la session pour juger. Copiez le code comme suit :
<%
Dim CC_Info(4),strInfo,strTemp
Si Session(CC_Info) = Alors
CC_Info(0) = cclog.txt 'Nom du fichier journal
CC_Info(1) = Requête.ServerVariables(HTTP_X_FORWARDED_FOR)
CC_Info(2) = Requête.ServerVariables(REMOTE_ADDR)
CC_Info(3) = 10 'Interdire l'actualisation de la page actuelle dans un délai de N secondes
CC_Info(4) = badip.txt 'Nom du fichier de liste noire IP
Session(CC_Info) = CC_Info(0) &|& CC_Info(1) &|& CC_Info(2) &|& CC_Info(3) &|& CC_Info(4)
Autre
strInfo = Fractionner (Session (CC_Info), |)
CC_Info(0) = strInfo(0)
CC_Info(1) = strInfo(1)
CC_Info(2) = strInfo(2)
CC_Info(3) = strInfo(3)
CC_Info(4) = strInfo(4)
Fin si
Const chkRefresh = 1 '0 désactive l'anti-rafraîchissement
Const chkProxy = 1 '0 désactive la vérification du proxy
Const chkBadIP = 1 '0 désactive la liste noire IP
Si Session (BadIP) = Alors
strInfo = ReadFile(CC_Info(4))
Si strInfo = Alors strInfo = chinavb.net
Session (BadIP) = strInfo
Autre
strInfo = Session (BadIP)
Fin si
'/*Jugement de première couche, interdire l'actualisation dans les N secondes*/
Si chkRefresh = 1 Alors
Si Session (RefreshTime) = Alors
Session (RefreshTime) = Maintenant ()
Autre
Si DateDiff(s, Session(RefreshTime), Now()) < CInt(CC_Info(3)) Alors
Response.Write (Le système est occupé, veuillez réessayer plus tard ! Code d'erreur 001)
Réponse.Fin()
Autre
Session (RefreshTime) = Maintenant ()
Fin si
Fin si
Fin si
'/*Le deuxième niveau de jugement, l'agent interdit le visionnage*/
Si chkProxy = 1 Alors
Si CC_Info(1) <> Alors
Si InStr(strInfo,CC_Info(1)) = 0 Alors
strTemp = CC_Info(1) et vbCrLf
Si InStr(strInfo,CC_Info(2)) = 0 Alors
strTemp = strTemp & [ & CC_Info(2) & ] & vbCrLf
Fin si
SaveLog CC_Info(4),strTemp
strInfo = strInfo & strTemp
Session (BadIP) = strInfo
Fin si
'Enregistrer le journal des attaques CC
SaveLog CC_Info(0),CC_Info(1) & [& CC_Info(2) & ] & Maintenant() &vbCrLf
Response.Write (Le système est occupé, veuillez réessayer plus tard ! Code d'erreur 002)
Réponse.Fin()
Fin si
Fin si
'/*Jugement de troisième niveau, la liste noire IP interdit la visualisation*/
Si chkBadIP = 1 Alors
Si InStr(strInfo,CC_Info(2))>0 Alors
Response.Write (Le système est occupé, veuillez réessayer plus tard ! Code d'erreur 003)
Réponse.Fin()
Fin si
Fin si
'ForReading=1,ForWriting=2,ForAppending=8
Fonction SaveLog (nom de fichier, contenu du fichier)
En cas d'erreur, reprendre ensuite
Dim fso, ce fichier
nom de fichier = Server.MapPath (nom de fichier)
Définir fso = CreateObject (Scripting.FileSystemObject)
Si Err <> 0 Alors
Response.Write (Échec de l'écriture du fichier &filename&, peut-être que votre système ne prend pas en charge FSO !)
Réponse.Fin()
Fin si
Définissez ce fichier = fso.OpenTextFile (nom de fichier, 8, True)
cefichier.write(contenu du fichier)
cefichier.Fermer
Définir fso = Rien
Fonction de fin
Fonction ReadFile (nom de fichier)
En cas d'erreur, reprendre ensuite
Dim fso, ce fichier
Définir fso = CreateObject (Scripting.FileSystemObject)
Si Err <> 0 Alors
Response.Write (Échec de la lecture du fichier &filename&, peut-être que votre système ne prend pas en charge FSO !)
Réponse.Fin()
Fin si
Définissez ce fichier = fso.OpenTextFile(Server.MapPath(filename), 1, True)
ReadFile = cefichier.ReadAll
cefichier.Fermer
Définir ce fichier = Rien
Définir fso = Rien
Fonction de fin
%>