从客户端中检测到有潜在危险的 Request.Form 值

本文介绍了解决从客户端提交HTML片段时出现的安全警告的方法。包括调整web.config配置、使用属性[ValidateInput(false)]等解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经常我们需要从客户端传一些HTML片段到后端,比如:博客发布一篇文章、发布留言等。

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


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

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

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



本文章由创风网原创,转载请注明出处:http://www.windite.com/article/details/qh24v42


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值