SQL关于特殊字符处理的基本方法
作者 佚名技术
来源 ASP编程
浏览
发布时间 2012-03-12
们这里只讨论不允许用户使用HTML代码的情况,也就是说,即使用户输入了HTML代码,这些数据也不会以HTML代码的形式显示。至于允许用户使用HTML代码的情况,比较复杂,以后专文探讨。 用户输入的数据是绝对不可以不加处理,原样显示的。如果其中包含HTML或js代码,使你的页面混乱不堪倒是小事,甚至可以格掉你的硬盘。 输出显示在页面上的数据,有可能是用户的直接输入,或是取自数据库。可以看到以上在入库时的处理只是转换了单引号,对尖括号,双引号等特殊字符并未处理,我们放在输出的时候再进行处理。 ASP中的server.HTMLEncode()方法可以将许多字符转换为“HTML字符”,如将<转换为<,将>转换为>等等。 在数据显示在页面上之前,可以用server.HTMLEncode()对其进行转换。但是该方法不会对回车,空格进行转换,这样就造成以下问题:如果用户是通过textarea控件输入的数据,输出时将不会保留原有格式,不仅没有回车换行,多个空格也只会显示为一个。为了解决这个问题,我们使用以下自定义函数: Rem 转换HTML非法字符,用于输出显示时
function HTMLEncode(fString) if not isnull(fString) then fString = Replace(fString, ">", ">") fString = Replace(fString, "<", "<") fString = Replace(fString, CHR(34), """) ''双引号 fString = Replace(fString, CHR(39), "''") ''单引号 fString = Replace(fString, CHR(32)&CHR(32), " ") ''空格 fString = Replace(fString, CHR(9), " ") ''tab键值 fString = Replace(fString, CHR(10), "<br>") ''换行 fString = Replace(fString, CHR(13), "") ''回车 HTMLEncode = fString end if end function 调用以上函数,输出通过textarea控件输入的数据,会得到满意的结果。 如果数据输出在表单控件中,不论是何种控件,都可利用server.HTMLEncode()方法转换字符,即使是对于textarea控件,也不会产生问题。虽然回车空格没有被转换,但在该控件中可以被识别。但是,server.HTMLEncode()方法不转换单引号。所以,控件的值一定要使用双引号: <input type=text name=uname value=""" & server.HTMLEncode(username) & """>
否则,如果用户输入的是 '''' onclick=javascript:.... ,以上代码将显示为: <input type=text name=uname value='''' onclick=javascript:...>
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇:
ASP实例:ASP+AJAX制作无刷新新闻评论系统
下一篇:
ASP教程:ASP是不区分大小写
关于
SQL关于特殊字符处理的基本方法
的所有评论