XSS【跨站脚本攻击】

 

从客户端(txt="<script><a href="www...")中检测到有潜在危险的 Request.Form 值。

 

如果你使用的是.NET 3.5,那么你只要为接收表单值的Action添加一个特性:[ValidateInput(false)] 就可以了,无需在页面设置ValidateRequest="false" 属性。

     [HttpPost]
     [ValidateInput(false)]
     public string CheckTxt()
    {

     }

 

如果使用的是.NET 4.0,你会发现这一操作后,仍然无效。

因为.NET 4.0做了改变,需要在你的Web.config 中,在<system.web>节点下增加:

web.config:

  <system.web>
    <httpRuntime requestValidationMode="2.0"/>
  </system.web>

Controller:
    
     [HttpPost]
        [ValidateInput(false)]
        public string CheckTxt()
        {
 
        }
   
解决跨站脚本攻击的方法之一:
把输入的特殊符号使用其他字符进行替换
判断是否含有特殊字符

     var a = '>';
     if (txt.indexOf(a)>1) {
     alert(2);
     }

  进行替换

  txt.replace("<", "〈"),只可以替换第一个

  txt.replace(/\</g, "〈"),可以替换全部  /g是正则表达式的语法,表示全部的意思,在这里就表示全部替换。 

 





 

接受特殊字符和jquery的方法
  
  使用编码和解码的方式

 

posted @ 2015-05-15 14:19  逍遥帝君  阅读(454)  评论(0编辑  收藏  举报