检测到有潜在危险的Request.Form 值 解决方法

本文介绍了在使用ASP.NET MVC3处理富文本编辑器提交时遇到的请求参数安全问题,提供了在Controller方法、ASP.NET页面和Web.config文件中关闭请求验证的三种解决方案,并解释了.NET Framework 4.0中引入的requestValidationMode及其作用。

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

Asp.net mvc3的“从客户端(content_v=\",<p>\n\t<imgalt=\"\" src...\")中检测到有潜在危险的Request.Form 值”解决方法

 JS有时会还报出500的错误

实际应用:在提交有富文本编辑器(如CKEditor,UEditor)的页面时...

下面提供三种方法

1、在Controller调用的方法上添加[ValidateInput(false)] (MVC3的特性)

[ValidateInput(false)]

public ActionResult EventSave()

 

 下面两种方法在传统的asp.net网站上一样适用

2、在对应的asp.net web页面上加上ValidateRequest="false"

<%@ Page ValidateRequest="false"Title="" Language="C#" MasterPageFile="~/Content/Platform/UI/common/defaultPage.Master"AutoEventWireup="true" %>

 

3、     在web.config修改一处配置

<httpRuntime requestValidationMode="2.0"/>

asp.net 4.0 解决办法

4.0和2.0的方法一样,不过要注意的是从 .Net Framework 4.0 开始,asp.net开始强制检测Request参数安全,而我们可以通过修改 Web.config 来恢复 2.0 版本的模式。

方法如下:

修改Web.config,增加requestValidationMode="2.0"属性值

 <system.web>
  <httpRuntime requestValidationMode="2.0" />
  <pages validateRequest="false"></pages>
 </system.web>

4.0 中多了一个 requestValidationMode,这是什么意思呢?

requestValidationMode 有两个值:

•2.0仅对网页启用请求验证。是启用还是关闭取决于 validateRequest。

•4.0 默认值。任何 HTTP 请求都会启用请求验证,也就是说不光是网页,还包括 Cookie 等。此时强制启用,不管 validateRequest 为何值。

由于 requestValidationMode="4.0" 是强制启用,所以我们会发现在 .NET Framework 4.0 中仅靠设置 validateRequest 是关闭不了请求验证的,还得将 requestValidationMode 设置为 2.0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值