'ฟังก์ชั่น: ฟังก์ชั่นการตรวจจับสตริงที่ปลอดภัย
'ชื่อ:เซฟเช็ค
'พารามิเตอร์: CheckString, CheckType, CheckLength
'อธิบาย:
'ตรวจสอบสตริง สตริงที่จะตรวจพบ: อักขระใดๆ
'ประเภทการตรวจจับ 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)
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อต่อไป
ErrorRoot="SYSTEM_ERROR|"
ถ้า checkString="" แล้ว
SafeCheck=ErrorRoot&"00001"
ฟังก์ชั่นทางออก
สิ้นสุด if
CheckString=Replace(CheckString,"'","'")
เลือกกรณี CheckType
กรณีที่ 0
CheckString=trim(CheckString)
SafeCheck=ซ้าย(CheckString,CheckLength)
กรณีที่ 1
ถ้าไม่ใช่ตัวเลข (CheckString) แล้ว
SafeCheck=ErrorRoot&"00002"
ฟังก์ชั่นทางออก
อื่น
SafeCheck=ซ้าย(CheckString,CheckLength)
สิ้นสุดถ้า
กรณีที่ 2
tempVar=IsDate(CheckString)
ถ้าไม่ใช่ TempVar แล้ว
SafeCheck=ErrorRoot&"00003"
ฟังก์ชั่นทางออก
อื่น
เลือกกรณี CheckLength
กรณีที่ 0
SafeCheck=FormatDateTime(CheckString,vbShortDate)
กรณีที่ 1
SafeCheck=FormatDateTime(CheckString,vbLongDate)
กรณีที่ 2
SafeCheck=ตรวจสอบสตริง
สิ้นสุดการเลือก
สิ้นสุดถ้า
กรณีที่ 3
tempVar=FormatCurrency(ตรวจสอบสตริง,0)
ถ้าเกิดข้อผิดพลาดแล้ว
SafeCheck=ErrorRoot&"00004"
ฟังก์ชั่นทางออก
อื่น
SafeCheck=FormatCurrency(ตรวจสอบสตริง,ตรวจสอบความยาว)
สิ้นสุดถ้า
กรณีที่ 4
sTemp = ตรวจสอบสตริง
ถ้า IsNull(sTemp) = True แล้ว
SafeCheck=ข้อผิดพลาดรูต&"00005"
ออกจากฟังก์ชัน
สิ้นสุดถ้า
sTemp = แทนที่(sTemp, "&", "&")
sTemp = แทนที่(sTemp, "<", "<")
sTemp = แทนที่(sTemp, ">", ">")
sTemp = แทนที่(sTemp, Chr(34), """)
sTemp = แทนที่(sTemp, Chr(10), "<br>")
SafeCheck = ซ้าย (sTemp, CheckLength)
กรณีที่ 5
sTemp = ตรวจสอบสตริง
ถ้า IsNull(sTemp) = True แล้ว
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)
n = เลน(s_BadStr)
IsSafeStr = จริง
สำหรับฉัน = 1 ถึง n
ถ้า Instr(CheckString, Mid(s_BadStr, i, 1)) > 0 จากนั้น
IsSafeStr = เท็จ
สิ้นสุดถ้า
ต่อไป
ถ้า IsSafeStr แล้ว
SafeCheck=left(CheckString,CheckLength)
อื่น
SafeCheck=ErrorRoot&"00007"
ออกจากฟังก์ชัน
สิ้นสุดถ้า
กรณีที่ 7
s_Filter="ผู้ใช้เน็ต|xp_cmdshell|/เพิ่ม|เลือก|นับ|asc|char|กลาง|'|""|"
S_Filter=S_Filter&"insert|ลบ|วาง|ตัดทอน|จาก|%|ประกาศ|-"
S_Filters=แยก(S_Filter,"|")
isFound=เท็จ
สำหรับ i=0 ถึง ubound(S_Filters)-1
ถ้า Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 แล้ว
คือพบ=จริง
ออกเพื่อ
สิ้นสุดถ้า
ต่อไป
ถ้าพบแล้ว
SafeCheck=ข้อผิดพลาดรูท&"00008"
ออกจากฟังก์ชัน
อื่น
SafeCheck=left(CheckString,CheckLength)
สิ้นสุดถ้า
สิ้นสุดการเลือก
ฟังก์ชั่นสิ้นสุด