您的位置:首页 > Web前端 > HTML

.NET中过滤TextBox中输入的html标签

2011-05-10 18:35 309 查看
今天遇到一个问题,就是在注册的时候输入用户描述信息的时候,发现如果在TextBox文本框(文本域)中输入html标签的话(如:<br>),asp.net会自动验证并且抛出异常,提示在客户端....中Resquest.Form存在潜在的危险!

琢磨了几个小时,用阿斯科码(ASCII码),不容易控制 “组合键”的触发!(也许是技术不到位),在后台过滤(不可能,因为asp.net客户端验证会在进入后台之前触发),最后想到了....... 没错! 正则表达式!

其实很简单 ,只需简单的几句代码即可实现:(汗颜,没早点发现!)

代码如下:



function stripHTML(html)
        {
            return html=html.replace(/<[^>]*>/g, "");
        }
 //调用stripHTML过滤html标签,然后赋值当前TextBox即可
        function returnResult() {
            document.getElementById("txtRemarks").value = stripHTML(document.getElementById("txtRemarks").innerHTML); 
        }



更简单的办法:

在页面的Pages标签 加入 ValidateRequest="false" ,让asp.net客户端不进行验证! 呵呵 .. 不过 这样应该不安全. 万一有xx黑客,跨域攻击的话....那就杯具了...



好了,以上是自己琢磨的一些办法,如果有更好的方法,还请大家不吝赐教, 当然有不当之处 ,也请大家多多指教。 最后希望这一帖对大家有帮助。 谢谢~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: