Funktion: sichere String-Erkennungsfunktion
'Name:SafeCheck
'Parameter: CheckString, CheckType, CheckLength
'veranschaulichen:
'Checkstring Die zu erkennende Zeichenfolge: beliebiges Zeichen.
'CheckType-Erkennungstyp 0 normales Kurzzeichen 1 Zahl 2 Datum 3 Geld 4 Kodierung HTML5-Dekodierung HTML6-Anmeldezeichenfolge 7 Anti-Angriffs-Erkennung
'CheckLength erkennt die Typlänge: Der Typ ist int, wenn es sich um Geld handelt, ist es die Position des Dezimalpunkts
'Rückgabewert: Wenn der Test besteht, wird die richtige Zeichenfolge zurückgegeben.
'Wenn es fehlschlägt, geben Sie den Fehlercode SYSTEM_ERROR|ERROR_CODE zurück
'Skript geschrieben von:SnowDu(DU雪.NET)
'Web:http://www.snsites.com/
'Web:http://www.downcodes.com/
'-----------------
Funktion SafeCheck(CheckString,CheckType,CheckLength)
Bei Fehler Weiter fortsetzen
ErrorRoot="SYSTEM_ERROR|"
if checkString="" dann
SafeCheck=ErrorRoot&"00001"
Exit-Funktion
end if
CheckString=Replace(CheckString,"'","'")
Wählen Sie den CheckType für den Fall aus
Fall 0
CheckString=trim(CheckString)
SafeCheck=Left(CheckString,CheckLength)
Fall 1
wenn nicht isnumberic(CheckString) dann
SafeCheck=ErrorRoot&"00002"
Exit-Funktion
anders
SafeCheck=Left(CheckString,CheckLength)
Ende wenn
Fall 2
tempVar=IsDate(CheckString)
Wenn nicht TempVar, dann
SafeCheck=ErrorRoot&"00003"
Exit-Funktion
anders
Wählen Sie den Fall CheckLength aus
Fall 0
SafeCheck=FormatDateTime(CheckString,vbShortDate)
Fall 1
SafeCheck=FormatDateTime(CheckString,vbLongDate)
Fall 2
SafeCheck=CheckString
Ende auswählen
Ende wenn
Fall 3
tempVar=FormatCurrency(CheckString,0)
wenn Err dann
SafeCheck=ErrorRoot&"00004"
Exit-Funktion
anders
SafeCheck=FormatCurrency(CheckString,CheckLength)
Ende wenn
Fall 4
sTemp = CheckString
Wenn IsNull(sTemp) = True, dann
SafeCheck=ErrorRoot&"00005"
Exit-Funktion
Ende wenn
sTemp = Ersetzen(sTemp, „&“, „&“)
sTemp = Ersetzen(sTemp, "<", "<")
sTemp = Ersetzen(sTemp, ">", ">")
sTemp = Replacement(sTemp, Chr(34), """)
sTemp = Ersetzen(sTemp, Chr(10), "<br>")
SafeCheck = Left(sTemp,CheckLength)
Fall 5
sTemp = CheckString
Wenn IsNull(sTemp) = True, dann
SafeCheck=ErrorRoot&"00006"
Exit-Funktion
Ende wenn
sTemp = Ersetzen(sTemp, „&“, „&“)
sTemp = Ersetzen(sTemp, "<", "<")
sTemp = Ersetzen(sTemp, ">", ">")
sTemp = Replacement(sTemp, """, Chr(34))
sTemp = Ersetzen(sTemp, "<br>",Chr(10))
SafeCheck = Left(sTemp,CheckLength)
Fall 6
s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
n = Len(s_BadStr)
IsSafeStr = True
Für i = 1 bis n
Wenn Instr(CheckString, Mid(s_BadStr, i, 1)) > 0 Dann
IsSafeStr = False
Ende wenn
Nächste
wenn IsSafeStr dann
SafeCheck=left(CheckString,CheckLength)
anders
SafeCheck=ErrorRoot&"00007"
Exit-Funktion
Ende wenn
Fall 7
s_Filter="net user|xp_cmdshell|/add|select|count|asc|char|mid|'|""|"
S_Filter=S_Filter&"insert|delete|drop|truncate|from|%|declare|-"
S_Filters=split(S_Filter,"|")
isFound=false
für i=0 bis ubound(S_Filters)-1
if Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 dann
isFound=true
Ausgang für
Ende wenn
nächste
wenn isFound dann
SafeCheck=ErrorRoot&"00008"
Exit-Funktion
anders
SafeCheck=left(CheckString,CheckLength)
Ende wenn
Ende auswählen
Endfunktion