Function CleanHTML(str)
Dim re
Set re=new RegExp
re.IgnoreCase =True
re.Global=True
re.Pattern="<(.[^>]*)>"
CleanHTML = re.Replace(str,"")
set re=Nothing
End Function 例如: Subject=CleanHTML(Request.Form("Subject"))
在需要的地方调用它就行了。
------------------------------------------------------------------------------
前几天写的一个HTML过滤函数,今天又做了下改进。
在ChinaZ上看到一篇文章说新云的系统存在跨站漏洞,新云信息提示是使用一个SHOWERR的文件将传递过来的错误信息提示,再从地址栏中获取输出。虽然不是很明白这漏洞都能起到什么作用,如何应用。看文章上讲的是说地址栏中数据没有过滤到Script/Iframe这样的东东。
想了一下,如果没有过滤,那就把接收的数据过滤掉不就OK了。针对在程序中过滤HTML的几种应用写了下面的函数,此函数可针对不同的级别来过滤不同的内容。思路倒没有什么,也就是查找、替换。
代码如下(这编辑器不能很好的转换这些代码格式,在DW中是很容易阅读的哟!):
程序代码
'===========================By Cloud.L
'函数名:RemoveHtml
'作用:移除HTML|Iframe|有害字符
'参数:OriginStr(需要处理的字符串)
' RemoveLevel(移除等级 0:全部移除|1:只移除Iframe|2:移除Iframe和JS|3:移除有害字符)
'===========================
Public Function RemoveHTML(ByVal originStr,ByVal RemoveLevel)
Dim Str,Reg
Str=OriginStr
On Error Resume Next
Set Reg=New RegExp
Reg.IgnoreCase=True
Reg.Global=True
Select Case RemoveLevel
Case 0
Reg.Pattern = "<(.[^>]*)>"
Str = Reg.Replace(Str, "")
Case 1
Reg.Pattern = "(<iframe(.+?)<\/iframe>)"
Str = Reg.Replace(Str,"")
Case 2
Reg.Pattern = "(<s+cript(.+?)<\/s+cript>)"
Str = Reg.Replace(Str, "")
Reg.Pattern = "(<iframe(.+?)<\/iframe>)"
Str = Reg.Replace(Str,"")
Case 3
Reg.Pattern = "[^\s\w]"
Str = Reg.Replace(Str,"")
End Select
Set Reg = Nothing
RemoveHTML=Str
End Function
更多的ASP之HTML过滤函数实例请到论坛查看: http://BBS.TC711.COM
【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】
来源:
互联网
日期:2008-12-19