您的位置:首页 > 产品设计 > UI/UE

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

2017-01-20 09:58 579 查看
经常我们需要从客户端传一些HTML片段到后端,比如:博客发布一篇文章、发布留言等。

但是你可能会遇到错误,类似下图:



1. 其实错误中已经说明的很清楚了,并且告诉了解决方法:

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

说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示存在危及应用程序安全的尝试,如跨站点脚本攻击。若要允许页面重写应用程序请求验证设置,请将 httpRuntime 配置节中的
requestValidationMode 特性设置为 requestValidationMode="2.0"。示例: <httpRuntime requestValidationMode="2.0" />。设置此值后,可通过在 Page 指令或 <pages> 配置节中设置 validateRequest="false" 禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。有关更多信息,请参见 http:// href="http://lib.csdn.net/base/go" target=_blank>Go.microsoft.com/fwlink/?LinkId=153133。 

异常详细信息: System.Web.HttpRequestValidationException: 从客户端(txtUEditor="<p>a</p>")中检测到有潜在危险的 Request.Form 值。

2. 另一种方法是在web.config中的pages节中设置,如:

<system.web >
<pages validateRequest="false" ></pages >
</system.web >

但是这种方式并不好,太过暴力,因为它会使整个项目所有的页面都不会再验证提交的内容,安全性大大降低。

3. 推荐做法:

给Action加一个Attribute:[ValidateInput(false)],这样只会让该页面不验证提交的内容,而不会影响到其他页面。
[HttpPost]
[ValidateInput(false)]
public ActionResult Publish(FormCollection form)
{
return View();
}

我使用的是.Net 4.5、MVC 5。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐