[原创]ASP安全检测与过滤函数SafeCheck

原创 2004年10月25日 14:33:00

'--------------------------------------------------------------------------
'作用:安全字符串检测函数
'名字: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,"'","&#39")
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, "<", "&lt;")
 sTemp = Replace(sTemp, ">", "&gt;")
 sTemp = Replace(sTemp, Chr(34), "&quot;")
 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, "&amp;", "&")
 sTemp = Replace(sTemp, "&lt;", "<")
 sTemp = Replace(sTemp, "&gt;", ">")
 sTemp = Replace(sTemp, "&quot;", 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

ASP过滤特定HTML标签函数

Function ScriptHtml(Byval ConStr,TagName,FType)    Dim Re    Set Re=new RegExp    Re.IgnoreCase =Fal...
  • johngong
  • johngong
  • 2007年12月22日 16:07
  • 317

ASP安全检测类

作者:孤剑时间:2006-9-27 class security  Private p_InvaildWords  Private p_hError,p_Hex,p_errDetails  Priva...
  • AloneSword
  • AloneSword
  • 2006年09月30日 15:27
  • 1897

PHP字符串过滤需要的函数,安全MYSQL

htmlspecialchars将特殊字符转成 HTML 格式。 语法: string htmlspecialchars(string string); 返回值: 字符串 函数种类: 资料处理   ...
  • wssxy
  • wssxy
  • 2008年03月31日 23:07
  • 4761

Asp检测文件是否存在的函数

Function FileExits(FileName)FileName=Server.Mappath(FileName)Set FSO= Server.CreateObject("Scripting...
  • szsbell
  • szsbell
  • 2007年11月05日 16:06
  • 242

【引用】asp代码过滤包括空格

和大家分享这篇日志,我的看法是:  原文地址:asp代码过滤包括空格    原文作者:lovercoca Function RemoveHTML(strHTML) ON ERROR RESUME ...
  • hawk140
  • hawk140
  • 2016年08月28日 11:46
  • 327

ASP过滤特殊字符

Function FormatHTML(fString)     If fString"" Then         fString = trim(fString)         fString =...
  • jyh_jack
  • jyh_jack
  • 2007年12月19日 15:48
  • 3411

我的ID型参数过滤防注入之道(ASP)

判断用户提交的数字参数,诸如**.asp?id=xxx思路:用户提交的不是数字的情况下(**.asp?id=xxx and 1=1),将后面非数字字符全部过滤这样,在被注入或发生其他情况时,都能显示正...
  • xeonwell
  • xeonwell
  • 2006年02月27日 11:11
  • 921

ASP字数计算函数

ASP字数计算函数Function WordCount(strInput)    Dim strTemp    strTemp = Replace(strInput, vbTab, " ")    s...
  • jujuchen
  • jujuchen
  • 2007年05月28日 13:07
  • 274

ASP过滤html函数只保留纯文字

ASP过滤html函数只保留纯文字。很好用呢,已经测试过了,没有什么问题。
  • qq19124152
  • qq19124152
  • 2014年05月26日 10:34
  • 3602

净化网络环境 ASP程序实现过滤脏话

在使用程序的朋友都会有这样的麻烦,在做用户可以提交信息的程序的时候,经常会输入一些脏话,特别是在做评论功能或者留言功能的时候,如何过滤这些脏话呢?下面我就来介绍一下其中一种方法,这种方法是需要数据库的...
  • suleil1
  • suleil1
  • 2015年10月28日 16:47
  • 303
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[原创]ASP安全检测与过滤函数SafeCheck
举报原因:
原因补充:

(最多只允许输入30个字)