'الوظيفة: وظيفة الكشف عن السلسلة الآمنة
'الاسم:الفحص الآمن
'المعلمات: CheckString، CheckType، CheckLength
'يوضح:
'Checkstring السلسلة التي سيتم اكتشافها: أي حرف.
'نوع اكتشاف CheckType 0 حرف قصير عادي 1 رقم 2 تاريخ 3 مال 4 ترميز HTML5 فك تشفير HTML6 سلسلة تسجيل الدخول 7 اكتشاف مضاد للهجوم
'يكتشف CheckLength طول النوع: النوع هو int، وعندما يكون المال، فهو موضع العلامة العشرية
'قيمة الإرجاع: إذا نجحت في الاختبار، قم بإرجاع السلسلة الصحيحة،
'إذا فشلت، قم بإرجاع رمز الخطأ SYSTEM_ERROR|ERROR_CODE
'السيناريو من تأليف:SnowDu(DU雪.NET)
"الويب:http://www.snsites.com/
"الويب:http://www.downcodes.com/
'--------------------------------------------
وظيفة SafeCheck (CheckString، CheckType، CheckLength)
على خطأ استئناف التالي
إروررووت = "SYSTEM_ERROR|"
إذا checkString = "" ثم
SafeCheck=ErrorRoot&"00001"
وظيفة الخروج
ينتهي إذا
CheckString=Replace(CheckString،"'"،'")
حدد نوع التحقق من الحالة
الحالة 0
CheckString=trim(CheckString)
SafeCheck=Left(CheckString,CheckLength)
الحالة 1
إذا لم يكن رقميًا (CheckString) إذن
SafeCheck=ErrorRoot&"00002"
وظيفة الخروج
آخر
SafeCheck=Left(CheckString,CheckLength)
نهاية إذا
الحالة 2
tempVar=IsDate(CheckString)
إذا لم يكن TempVar ثم
SafeCheck=ErrorRoot&"00003"
وظيفة الخروج
آخر
حدد طول التحقق من الحالة
الحالة 0
SafeCheck=FormatDateTime(CheckString,vbShortDate)
الحالة 1
SafeCheck=FormatDateTime(CheckString,vbLongDate)
الحالة 2
SafeCheck=CheckString
حدد النهاية
نهاية إذا
الحالة 3
tempVar=FormatCurrency(CheckString,0)
إذا أخطأ بعد ذلك
SafeCheck=ErrorRoot&"00004"
وظيفة الخروج
آخر
SafeCheck=FormatCurrency(CheckString,CheckLength)
نهاية إذا
الحالة 4
sTemp = CheckString
إذا IsNull(sTemp) = صحيح إذن
SafeCheck=ErrorRoot&"00005"
وظيفة الخروج
نهاية إذا
sTemp = استبدال (sTemp، "&"، "&")
sTemp = استبدال (sTemp، "<"، "<؛")
sTemp = استبدال (sTemp، ">"، ">؛")
sTemp = استبدال (sTemp، Chr(34)، """)
sTemp = استبدال (sTemp، Chr(10)، "<br>")
SafeCheck = اليسار (sTemp، CheckLength)
الحالة 5
sTemp = CheckString
إذا IsNull(sTemp) = صحيح إذن
SafeCheck=ErrorRoot&"00006"
وظيفة الخروج
نهاية إذا
sTemp = استبدال (sTemp، "&"، "&")
sTemp = استبدال (sTemp، "<؛"، "<")
sTemp = استبدال (sTemp، ">"، ">")
sTemp = استبدال (sTemp، ""؛"، Chr (34))
sTemp = استبدال (sTemp، "<br>"،Chr(10))
SafeCheck = اليسار (sTemp، CheckLength)
الحالة 6
s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
ن = لين (s_BadStr)
IsSafeStr = صحيح
لأني = 1 إلى ن
إذا Instr(CheckString, Mid(s_BadStr, i, 1))> 0 ثم
IsSafeStr = خطأ
نهاية إذا
التالي
إذا IsSafeStr ثم
SafeCheck=left(CheckString,CheckLength)
آخر
SafeCheck=ErrorRoot&"00007"
وظيفة الخروج
نهاية إذا
الحالة 7
s_Filter="net user|xp_cmdshell|/add|select|count|asc|char|mid|'|""|"
S_Filter=S_Filter&"إدراج|حذف|إسقاط|اقتطاع|من|%|إعلان|-"
S_Filters=split(S_Filter,"|")
isFound=false
لـ i=0 إلى ubound(S_Filters)-1
إذا Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 ثم
تم العثور عليه=صحيح
الخروج ل
نهاية إذا
التالي
إذا تم العثور عليه بعد ذلك
SafeCheck=ErrorRoot&"00008"
وظيفة الخروج
آخر
SafeCheck=left(CheckString,CheckLength)
نهاية إذا
حدد النهاية
وظيفة النهاية