asp过滤html特殊字符,asp中常用的字符串安全处理函数集合(过滤特殊字符等)

代码如下:

'=====================================

'转换内容,防止意外

'=====================================

Function Content_Encode(ByVal t0)

IF IsNull(t0) Or Len(t0)=0 Then

Content_Encode=""

Else

Content_Encode=Replace(t0,"

Content_Encode=Replace(Content_Encode,">",">")

End IF

End Function

'=====================================

'反转换内容

'=====================================

Function Content_Decode(ByVal t0)

IF IsNull(t0) Or Len(t0)=0 Then

Content_Decode=""

Else

Content_Decode=Replace(t0,"

Content_Decode=Replace(Content_Decode,">",">")

End IF

End Function

'=====================================

'过滤字符

'=====================================

Function FilterText(ByVal t0,ByVal t1)

IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterText="":Exit Function

t0=Trim(t0)

Select Case t1

Case "1"

t0=Replace(t0,Chr(32)," ")

t0=Replace(t0,Chr(13),"")

t0=Replace(t0,Chr(10)&Chr(10),"
")

t0=Replace(t0,Chr(10),"
")

Case "2"

t0=Replace(t0,Chr(8),"")'回格

t0=Replace(t0,Chr(9),"")'tab(水平制表符)

t0=Replace(t0,Chr(10),"")'换行

t0=Replace(t0,Chr(11),"")'tab(垂直制表符)

t0=Replace(t0,Chr(12),"")'换页

t0=Replace(t0,Chr(13),"")'回车 chr(13)&chr(10) 回车和换行的组合

t0=Replace(t0,Chr(22),"")

t0=Replace(t0,Chr(32),"")'空格 SPACE

t0=Replace(t0,Chr(33),"")'!

t0=Replace(t0,Chr(34),"")'"

t0=Replace(t0,Chr(35),"")'#

t0=Replace(t0,Chr(36),"")'$

t0=Replace(t0,Chr(37),"")'%

t0=Replace(t0,Chr(38),"")'&

t0=Replace(t0,Chr(39),"")''

t0=Replace(t0,Chr(40),"")'(

t0=Replace(t0,Chr(41),"")')

t0=Replace(t0,Chr(42),"")'*

t0=Replace(t0,Chr(43),"")'+

t0=Replace(t0,Chr(44),"")',

t0=Replace(t0,Chr(45),"")'-

t0=Replace(t0,Chr(46),"")'.

t0=Replace(t0,Chr(47),"")'/

t0=Replace(t0,Chr(58),"")':

t0=Replace(t0,Chr(59),"")';

t0=Replace(t0,Chr(60),"")'<

t0=Replace(t0,Chr(61),"")'=

t0=Replace(t0,Chr(62),"")'>

t0=Replace(t0,Chr(63),"")'?

t0=Replace(t0,Chr(64),"")'@

t0=Replace(t0,Chr(91),"")'\

t0=Replace(t0,Chr(92),"")'\

t0=Replace(t0,Chr(93),"")']

t0=Replace(t0,Chr(94),"")'^

t0=Replace(t0,Chr(95),"")'_

t0=Replace(t0,Chr(96),"")'`

t0=Replace(t0,Chr(123),"")'{

t0=Replace(t0,Chr(124),"")'|

t0=Replace(t0,Chr(125),"")'}

t0=Replace(t0,Chr(126),"")'~

Case Else

t0=Replace(t0, "&", "&")

t0=Replace(t0, "'", "'")

t0=Replace(t0, """", """)

t0=Replace(t0, "

t0=Replace(t0, ">", ">")

End Select

IF Instr(Lcase(t0),"expression")>0 Then

t0=Replace(t0,"expression","e­xpression", 1, -1, 0)

End If

FilterText=t0

End Function

'=====================================

'过滤常见字符及Html

'=====================================

Function FilterHtml(ByVal t0)

IF Len(t0)=0 Or IsNull(t0) Or IsArray(t0) Then FilterHtml="":Exit Function

IF Len(Sdcms_Badhtml)>0 Then t0=ReplaceText(t0,"

IF Len(Sdcms_BadEvent)>0 Then t0=ReplaceText(t0,"]*)("&Sdcms_BadEvent&")", "

t0=FilterText(t0,0)

FilterHtml=t0

End Function

Function GotTopic(ByVal t0,ByVal t1)

IF Len(t0)=0 Or IsNull(t0) Then

GotTopic=""

Exit Function

End IF

Dim l,t,c, i

t0=Replace(Replace(Replace(Replace(t0," "," "),""",chr(34)),">",">"),"

l=Len(t0)

t=0

For I=1 To l

c=Abs(Asc(Mid(t0,i,1)))

IF c>255 Then t=t+2 Else t=t+1

IF t>=t1 Then

gotTopic=Left(t0,I)&"…"

Exit For

Else

GotTopic=t0

End IF

Next

GotTopic=Replace(Replace(Replace(Replace(GotTopic," "," "),chr(34),"""),">",">"),"

End Function

Function UrlDecode(ByVal t0)

Dim t1,t2,t3,i,t4,t5,t6

t1=""

t2=False

t3=""

For I=1 To Len(t0)

t4=Mid(t0,I,1)

IF t4="+" Then

t1=t1&" "

ElseIF t4="%" Then

t5=Mid(t0,i+1,2)

t6=Cint("&H" & t5)

IF t2 Then

t2=False

t1=t1&Chr(Cint("&H"&t3&t5))

Else

IF Abs(t6)<=127 then

t1=t1&Chr(t6)

Else

t2=True

t3=t5

End IF

End IF

I=I+2

Else

t1=t1&t4

End IF

Next

UrlDecode=t1

End Function

Function CutStr(byVal t0,byVal t1)

Dim l,t,c,i

IF IsNull(t0) Then CutStr="":Exit Function

l=Len(t0)

t1=Int(t1)

t=0

For I=1 To l

c=Asc(Mid(t0,I,1))

IF c<0 Or c>255 Then t=t+2 Else t=t+1

IF t>=t1 Then

CutStr=Left(t0,I)&"..."

Exit For

Else

CutStr=t0

End IF

Next

End Function

Function CloseHtml(ByVal t0)

Dim t1,I,t2,t3,Regs,Matches,J,Match

Set Regs=New RegExp

Regs.IgnoreCase=True

Regs.Global=True

t1=Array("p","div","span","table","ul","font","b","u","i","h1","h2","h3","h4","h5","h6")

For I=0 To UBound(t1)

t2=0

t3=0

Regs.Pattern="\]+|)\>"

Set Matches=Regs.Execute(t0)

For Each Match In Matches

t2=t2+1

Next

Regs.Pattern="\"&t1(I)&"\>"

Set Matches=Regs.Execute(t0)

For Each Match In Matches

t3=t3+1

Next

For j=1 To t2-t3

t0=t0+""&t1(I)&">"

Next

Next

CloseHtml=t0

End Function

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值