ASP安全字符串检测函数SafeCheck

安全|函数|字符串

'--------------------------------------------------------------------------
'作用:安全字符串检测函数
'名字:SafeCheck
'参数:CheckString,CheckType,CheckLength
'说明:
'Checkstring待检测字符串:任意字符.
'CheckType检测类型0正常短字符1数字2日期3金钱4编码HTML5解码HTML6登录字符串7防攻击检测
'CheckLength检测类型长度:类型为int,当为金钱时为小数点的位置
'返回值:如果通过检测,返回正确字符串,
'如果未通过则返回错误代码SYSTEM_ERROR|ERROR_CODE
'Script Writen by :SnowDu(杜雪.NET)
'Web:http://www.snsites.com/
'--------------------------------------------------------------------------
function  SafeCheck(CheckString,CheckType,CheckLength)
On Error Resume Next
ErrorRoot="SYSTEM_ERROR|"
if checkString="" then
 SafeCheck=ErrorRoot&"00001"
 exit function
end if

CheckString=Replace(CheckString,"'","'")
select case CheckType
case 0
 CheckString=trim(CheckString)
 SafeCheck=Left(CheckString,CheckLength)
case 1
 if not isnumberic(CheckString) then
  SafeCheck=ErrorRoot&"00002"
  exit function
 else
  SafeCheck=Left(CheckString,CheckLength)
 end if
case 2
 tempVar=IsDate(CheckString)
 if Not TempVar then
  SafeCheck=ErrorRoot&"00003"
  exit function
 else
  select case CheckLength
  case 0
   SafeCheck=FormatDateTime(CheckString,vbShortDate)
  case 1
   SafeCheck=FormatDateTime(CheckString,vbLongDate)
  case 2
   SafeCheck=CheckString
  end select
 end if
case 3
 tempVar=FormatCurrency(CheckString,0)
 if Err then
  SafeCheck=ErrorRoot&"00004"
  exit function
 else
  SafeCheck=FormatCurrency(CheckString,CheckLength)
 end if
case 4
 sTemp = CheckString
 If IsNull(sTemp) = True Then
  SafeCheck=ErrorRoot&"00005"
  Exit Function
 End If
 sTemp = Replace(sTemp, "&", "&")
 sTemp = Replace(sTemp, "<", "<")
 sTemp = Replace(sTemp, ">", ">")
 sTemp = Replace(sTemp, Chr(34), """)
 sTemp = Replace(sTemp, Chr(10), "<br>")
 SafeCheck = Left(sTemp,CheckLength)
case 5
 sTemp = CheckString
 If IsNull(sTemp) = True Then
  SafeCheck=ErrorRoot&"00006"
  Exit Function
 End If
 sTemp = Replace(sTemp, "&", "&")
 sTemp = Replace(sTemp, "<", "<")
 sTemp = Replace(sTemp, ">", ">")
 sTemp = Replace(sTemp, """, Chr(34))
 sTemp = Replace(sTemp, "<br>",Chr(10))
 SafeCheck = Left(sTemp,CheckLength)
case 6
 s_BadStr = "'  &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
 n = Len(s_BadStr)
 IsSafeStr = True
 For i = 1 To n
  If Instr(CheckString, Mid(s_BadStr, i, 1)) > 0 Then
   IsSafeStr = False
  End If
 Next
 if IsSafeStr then
  SafeCheck=left(CheckString,CheckLength)
 else
  SafeCheck=ErrorRoot&"00007"
  Exit Function
 end if
case 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
 for i=0 to ubound(S_Filters)-1
  if Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 then
   isFound=true
   exit for
  end if
 next
 if isFound then
  SafeCheck=ErrorRoot&"00008"
  Exit Function
 else
  SafeCheck=left(CheckString,CheckLength)
 end if
end select
end function

时间: 2024-09-11 14:59:44

ASP安全字符串检测函数SafeCheck的相关文章

asp.net字符串分割函数使用方法分享

 这篇文章主要介绍了asp.net字符串分割函数使用方法,需要的朋友可以参考下 先来看个简单的实例   但是其数组长度却是25,而不是3.下面这种方法是先将"[jb51.net]"替换成一个特殊字符,比如$,在根据这个字符执行Split   例如下面根据[jb51.net]分割    代码如下: string[] arrstr2 = str.Replace("[jb51.net]", "$").Split('$');     好了看其它方法.最简

asp.net字符串截取函数

asp教程.net字符串截取函数 本教程先是告诉你用最简单的方法取对字符串进行截取,再后面写了一个实用的程序来对数据进行字符串截取哦. */ //c# string mystring = "abc"; bool test1 = mystring.substring(2, 1).equals("c"); // this is true. //vb substring microsoft.visualbasic.left(string, length)  //一个简单智

asp之字符串操作函数_ASP基础

asp之字符串函数示例用字符串函数对字符串进行截头去尾.大小写替换等操作. 函数 语法 功能 Len Len(string|varname) 返回字符串内字符的数目,或是存储一变量所需的字节数. Trim Trim(string) 将字符串前后的空格去掉 Ltrim Ltrim(string) 将字符串前面的空格去掉 Rtrim Rtrim(string) 将字符串后面的空格去掉 Mid Mid(string,start,length) 从string字符串的start字符开始取得length长

asp.net字符串截取函数介绍

字符截取函数  代码如下 复制代码 ///   <summary>         ///   将指定字符串按指定长度进行剪切,         ///   </summary>         ///   <param   name= "oldStr "> 需要截断的字符串 </param>         ///   <param   name= "maxLength "> 字符串的最大长度 </

asp.net 字符串截取函数

public string CutStr(string str,int len)  { string s="";  for(int i=0;i 11 {  int r= i% len;  int last =(str.Length/len)*len;  if (i!=0 && i<=last)  {  if( r==0)  {  s+=str.Substring(i-len,len)+" ;  }  }  else if (i>last)  {  

asp.net字符串分割函数使用方法分享_实用技巧

先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将"[jb51.net]"替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面根据[jb51.net]分割 复制代码 代码如下: string[] arrstr2 = str.Replace("[jb51.net]", "$").Split('$'); 好了看其它方法.最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个控制台项目.然后在Mai

asp CutStrX字符串截取函数(过滤全部HTML标记)_应用技巧

复制代码 代码如下: Function CutStrX(ByVal Str,ByVal StrLen) Dim l,t,c,i,r '过滤全部HTML标记 Set r=New RegExp r.Global=True r.MultiLine=True r.Pattern="(</?[A-Za-z][A-Za-z0-9]*[^>]*>)" str=r.Replace(str," ") Set r=Nothing l=Len(str) t=0 For

asp.net字符串分割函数用法

先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将"[111cn.net]"替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我要根据[111cn.net]分割的话  代码如下 复制代码 string[] arrstr2 = str.Replace("[111cn.net]", "$").Split('$'); 好了看其它方法 .最简单最常用的方法,以一个指定的字符进行的分割 打开vs.net新建一个控制台项

asp CutStrX字符串截取函数(过滤全部HTML标记)

复制代码 代码如下: Function CutStrX(ByVal Str,ByVal StrLen) Dim l,t,c,i,r '过滤全部HTML标记 Set r=New RegExp r.Global=True r.MultiLine=True r.Pattern="(</?[A-Za-z][A-Za-z0-9]*[^>]*>)" str=r.Replace(str," ") Set r=Nothing l=Len(str) t=0 For