文章内容

2017/3/30 14:29:20,作 者: 黄兵

终极解决方案:ASP.NET MVC5(Razor)从客户端中检测到有潜在危险的 Request.Form 值

文章编辑出现了问题:

ASP.NET mvc5(razor)从客户端中检测到有潜在危险的 Request.Form 值

从客户端(NewContent="<p>
2016-04-14至201...")中检测到有潜在危险的 Request.Form 值。

说明: ASP.NET 在请求中检测到包含潜在危险的数据,因为它可能包括 HTML 标记或脚本。该数据可能表示存在危及应用程序安全的尝试,如跨站点脚本攻击。如果此类型的输入适用于您的应用程序,则可包括明确允许的网页中的代码。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkID=212874。 
异常详细信息: System.Web.HttpRequestValidationException: 从客户端(NewContent="<p>
2016-04-14至201...")中检测到有潜在危险的 Request.Form 值。
源错误: 
行 146:        public ActionResult Edit(MNews model)
行 147:        { 
行 148:            
var urlReferrer = Request.Params["UrlReferrer"]; 行 149:            
ViewBag.UrlReferrer = urlReferrer;
行 150:            
var js = new JsonResultMessage();


字段NewContent的值HTML代码含有HTML 标记或脚本。该数据可能表示存在危及应用程序安全的尝试,如跨站点脚本攻击。

即使在Action中加了 [ValidateInput(false)]也不管用,原来是下面代码了引起的:

var urlReferrer = Request.Params["UrlReferrer"];
ViewBag.UrlReferrer = urlReferrer;

把上面两行代码注释掉是,就正常了。原来在MVC中使用了 Request.Params来获取参数值验证时对加 [ValidateInput(false)]是还够的,还要在配置文件Web.config中的结点httpRuntime加入requestValidationMode="2.0",如下图:

如是代码中没有Request.Params来获取参数值,只在Action方法加上 [ValidateInput(false)]就可以了。

.net网站&系统开发技术学习交流群:533829726
本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:蓝狐软件工作室 » 终极解决方案:ASP.NET MVC5(Razor)从客户端中检测到有潜在危险的 Request.Form 值
本文标题:终极解决方案:ASP.NET MVC5(Razor)从客户端中检测到有潜在危险的 Request.Form 值
本文地址:http://www.lanhusoft.com/Article/530.html
分享到:

发表评论

评论列表