你可以把非法字符存在一个数组里
 然后把你输入的值循环于这个数组进行比较
   如果存在非法字符就提示
 最好用indexof来比较

解决方案 »

  1.   

    把你的文本框放在
    <noscript>
    </noscript>
    标签里就可以了。
      

  2.   

    <noscript> 
    <tr height="25px">
    <td align="center">关键字:<input type="text" name="keyword" size="20" maxlength="50" class="inputbg" value="" /><br/></td>
    </tr>
    </noscript> 
    你的意思是:具体放这里?
      

  3.   

    <input type='text' onblur="Check(this)"/>
     <script type="text/javascript">
    function Check(txt)
    {
      var reg=/<script>|<\/script>/gi
      if(reg.test(txt.value))
      {
        alert("含有script");return false;
      }
    }
       </script>
      

  4.   

    不可能“<script>”也不让别人输入吧
    一个判断完整脚本
    var reg = /\<script.*?\>.*?\<\/script\>/gi;
    if(reg.test(value)) return false;
      

  5.   

    其实可以在输出到HTML页面的时候全部用ServerUtility.HTMLEncoding,它可以把<变成&lt;,也就是直接在页面上显示<,这样就不存在攻击的问题了如果你这样过滤的话,你让用户怎么先是<script>呢?到时候直接HTMLEncoding一下就可以了,不用过滤
      

  6.   

    请问
    <iframe>,<frameset>及<a onload="">怎么防?
      

  7.   

    我现在发现通过输入对话筐不执行<script>alert("45345")</script>
    但是,直接在浏览器上输入还是会执行:
    http://www.sanxiaairport.com/index/search.aspx?keyword=>"><script>alert("45345")</script>
    这是网址,不知道大家有何高见不让这个<script>运行,这是以前别人写的.net程序,修改里面的*.cs文件需要编译
    我这里没有studio 2005编译的。不知道大家有没有办法通过修改*.ascx文件,解决这个问题!
      

  8.   

    其实可以在输出到HTML页面的时候全部用ServerUtility.HTMLEncoding,开始我我是这样改的,但是编译不了整个网站程序,我郁闷中!