'機能: 安全な文字列検出機能
'名前:セーフチェック
'パラメータ: 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)
エラー時は次へ再開
ErrorRoot="SYSTEM_ERROR|"
checkString="" の場合
SafeCheck=ErrorRoot&"00001"
終了関数
end if
CheckString=Replace(CheckString,"'","'")
ケースのチェックタイプを選択
ケース0
CheckString=trim(CheckString)
SafeCheck=Left(CheckString,CheckLength)
ケース1
isnumberic(CheckString) でない場合は、
SafeCheck=ErrorRoot&"00002"
終了関数
それ以外
SafeCheck=Left(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(CheckString,0)
エラーの場合は
SafeCheck=ErrorRoot&"00004"
終了関数
それ以外
SafeCheck=FormatCurrency(CheckString,CheckLength)
終了する場合
ケース4
sTemp = チェック文字列
IsNull(sTemp) = True の場合
SafeCheck=ErrorRoot&"00005"
終了関数
終了の場合
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, Chr(34), "")
sTemp = Replace(sTemp, Chr(10), "<br>")
SafeCheck = Left(sTemp,CheckLength)
ケース5
sTemp = チェック文字列
IsNull(sTemp) = True の場合
SafeCheck=ErrorRoot&"00006"
終了関数
終了の場合
sTemp = Replace(sTemp, "&", "&")
sTemp = Replace(sTemp, "<", "<")
sTemp = Replace(sTemp, ">", ">")
sTemp = Replace(sTemp, "", Chr(34))
sTemp = Replace(sTemp, "<br>",Chr(10))
SafeCheck = Left(sTemp,CheckLength)
ケース6
s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
n = レン(s_BadStr)
IsSafeStr = True
i = 1 To n の場合
Instr(CheckString, Mid(s_BadStr, i, 1)) > 0 の場合
IsSafeStr = False
終了の場合
次
IsSafeStr の場合
SafeCheck=left(CheckString,CheckLength)
それ以外
SafeCheck=ErrorRoot&"00007"
終了関数
終了する場合
ケース7
s_Filter="ネット ユーザー|xp_cmdshell|/add|select|count|asc|char|mid|'|""|"
S_Filter=S_Filter&"挿入|削除|ドロップ|切り捨て|から|%|宣言|-"
S_Filters=split(S_Filter,"|")
見つかった = false
i=0 から ubound(S_Filters)-1 の場合
if Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 then
見つかった=true
のために出る
終了する場合
次
見つかった場合
SafeCheck=ErrorRoot&"00008"
終了関数
それ以外
SafeCheck=left(CheckString,CheckLength)
終了する場合
エンドセレクト
終了関数