客户端输入非法字符的问题

出现的问题:
     自己在写一个简单的留言板,同时也是在学习,中间遇到了很多问题。
在客户端文本框输入诸如“<h1>Hello</h2>”,“<script>alert('Hello')</script>”,或者单引号都会出现下面提示“...中检测到有潜在危险的Request.Form 值”,我增加了字符过滤 
       我先用HtmlEncod编码字符串 既:string str=str.Server.HtmlEncod(str);  问题依旧不能解决,我又写了个类用来过滤字符
      其中过滤 z=z.Lower();z=z.replace("'",""");   z=z.replace("<","*");问题依然不能解决,

  从客户端(ctl00$ContentPlaceHolder1   $TextBoxContent="<script>alert('ok')<...")中检测到有潜在危险的  Request.Form 值。 
 分析问题
  Html 标记以及<script>是application级别的,在还没有执行到你的页时候就已经把错误抛出了

问题解决
  
 编辑web.config,在<system.web>里   加入   <pages   validateRequest="false"/>  
这样会是你的所有页面都不在提示错误
如果只想验证单个页面直接在页面的page指令中加入 validateRequest="false"/

   

posted @ 2008-06-26 01:18  lance2008  阅读(820)  评论(2编辑  收藏  举报