打赏

从客户端(content="<p></p>")中检测到有潜在危险的 Request.Form 值。

出现这个问题,一般是由于.Net Framework 使用了4.0版本造成的。(从 .Net Framework 4.0 开始,ASP.NET开始强制检测Request参数安全),而我们可以通过修改 Web.config 来恢复 2.0 版本的模式。

第一种,

修改Web.config,增加requestValidationMode="2.0"属性值,<httpRuntime maxRequestLength="2097151" executionTimeout="3600" requestValidationMode="2.0" />,通过更改验证模式为2.0,同时在页头设置validateRequest="false" 。

mvc改法就是:

第二种,

通过ajax等方式提交数据,将富文本的内容先进行编码转换,然后在后台解码。

 

 原来在.net中,Request时出现有HTML或Javascript等字符串时,系统会认为是危险性值,所以需要我们去掉验证。

 解决方案如下:

     给对应的controller的方法加特性 [ValidateInput(false)]

      

 

     问题解决。

 

    在网上查资料的时候,解决方法需要修改配置文件,

        <httpRuntime requestValidationMode="2.0" />

 

    并且这样做可能会带来安全问题,站点很容易引发跨站脚本攻击(http://www.shaoqun.com/a/29374.aspx)。

    

posted @ 2017-09-14 16:20  JoeZhu  阅读(288)  评论(0编辑  收藏  举报