مشاركة أكثر شمولاً لرمز هجوم ASP لمكافحة CC، وذلك باستخدام الجلسة بشكل أساسي للحكم. انسخ رمز الكود كما يلي:
<%
ديم CC_Info(4)،strInfo،strTemp
إذا كانت الجلسة (CC_Info) = إذن
CC_Info(0) = cclog.txt 'اسم ملف السجل
CC_Info(1) = Request.ServerVariables(HTTP_X_FORWARDED_FOR)
CC_Info(2) = Request.ServerVariables(REMOTE_ADDR)
CC_Info(3) = 10 'منع تحديث الصفحة الحالية خلال N ثانية
CC_Info(4) = badip.txt 'اسم ملف القائمة السوداء IP
الجلسة(CC_Info) = CC_Info(0) &|& CC_Info(1) &|& CC_Info(2) &|& CC_Info(3) &|& CC_Info(4)
آخر
strInfo = سبليت(جلسة(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)
نهاية إذا
Const chkRefresh = 1 '0 يقوم بإيقاف تشغيل خاصية منع التحديث
Const chkProxy = 1 '0 يوقف التحقق من الوكيل
Const chkBadIP = 1 '0 يؤدي إلى إيقاف تشغيل القائمة السوداء لـ IP
إذا كانت الجلسة (BadIP) = إذن
strInfo = ملف القراءة(CC_Info(4))
إذا كانت strInfo = ثم strInfo = chinavb.net
جلسة (BadIP) = strInfo
آخر
strInfo = الجلسة (BadIP)
نهاية إذا
'/*حكم الطبقة الأولى، منع التحديث خلال N ثانية*/
إذا chkRefresh = 1 ثم
إذا كانت الجلسة (RefreshTime) = إذن
الجلسة (وقت التحديث) = الآن ()
آخر
إذا كان DateDiff(s, Session(RefreshTime), Now()) < CInt(CC_Info(3)) إذن
Response.Write(النظام مشغول، يرجى المحاولة مرة أخرى لاحقاً! رمز الخطأ 001)
الاستجابة. النهاية ()
آخر
الجلسة (وقت التحديث) = الآن ()
نهاية إذا
نهاية إذا
نهاية إذا
'/*المستوى الثاني من الحكم الوكيل يمنع المشاهدة*/
إذا كان chkProxy = 1 ثم
إذا CC_Info(1) <> إذن
إذا كان InStr(strInfo,CC_Info(1)) = 0 إذن
strTemp = CC_Info(1) & vbCrLf
إذا كان InStr(strInfo,CC_Info(2)) = 0 إذن
strTemp = strTemp & [ & CC_Info(2) & ] & vbCrLf
نهاية إذا
SaveLog CC_Info(4)،strTemp
strInfo = strInfo & strTemp
جلسة (BadIP) = strInfo
نهاية إذا
"سجل سجل هجوم CC."
SaveLog CC_Info(0),CC_Info(1) & [& CC_Info(2) & ] & Now() &vbCrLf
Response.Write(النظام مشغول، يرجى المحاولة مرة أخرى لاحقاً! رمز الخطأ 002)
الاستجابة. النهاية ()
نهاية إذا
نهاية إذا
'/*حكم المستوى الثالث، القائمة السوداء لعناوين IP تمنع المشاهدة*/
إذا chkBadIP = 1 ثم
إذا كان InStr(strInfo,CC_Info(2))>0 إذن
Response.Write(النظام مشغول، يرجى المحاولة مرة أخرى لاحقاً! رمز الخطأ 003)
الاستجابة. النهاية ()
نهاية إذا
نهاية إذا
'للقراءة=1،للكتابة=2،للتطبيق=8
وظيفة SaveLog (اسم الملف، محتوى الملف)
على خطأ استئناف التالي
خافت FSO، هذا الملف
اسم الملف = Server.MapPath (اسم الملف)
تعيين fso = CreateObject(Scripting.FileSystemObject)
إذا أخطأ <> 0 ثم
Response.Write(فشل في كتابة الملف &اسم الملف&، ربما نظامك لا يدعم FSO!)
الاستجابة. النهاية ()
نهاية إذا
اضبط هذا الملف = fso.OpenTextFile(filename, 8, True)
thisfile.write(محتوى الملف)
thisfile.Close
تعيين fso = لا شيء
وظيفة النهاية
وظيفة ملف القراءة (اسم الملف)
على خطأ استئناف التالي
خافت FSO، هذا الملف
تعيين fso = CreateObject(Scripting.FileSystemObject)
إذا أخطأ <> 0 ثم
Response.Write(فشل في قراءة الملف &اسم الملف&، ربما نظامك لا يدعم FSO!)
الاستجابة. النهاية ()
نهاية إذا
قم بتعيين هذا الملف = fso.OpenTextFile(Server.MapPath(filename), 1, True)
ReadFile = thisfile.ReadAll
thisfile.Close
تعيين هذا الملف = لا شيء
تعيين fso = لا شيء
وظيفة النهاية
%>