asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误


发布日期:2020年03月07日
 
asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误

在提交表单时候aspnet 提示"从客户端()中检测到有潜在危险的 RequestForm 值" aspnet中的请求验证特性提供了某一等级的保护措施防止XSS攻击aspnet的请求验证是默认启动的这个给出各个版本net的解决方法

aspnet 通常解决办法

方案一

aspx文件中的page项添加ValidateRequest="false" 如下

<%@ Page ValidateRequest="false" Language="C#" AutoEventWireup="true" CodeFile="testaspxcs" Inherits="test" %>

方案二

修改webconfig配置文件

<systemweb>
<pages validateRequest="false" >
</pages>
</systemweb>

总结validateRequest 这句我们知道是关闭验证也就是说提交带标签比如 <strong>粗体</strong> 这样的值时ASPNET 不会报错这里推荐使用方案一因为方案一只修改testaspx这一个页面而如果使用方案二的话将是整个解决方案都变成ValidateRequest="false"

aspnet 解决办法

的方法一样不过要注意的是从 Net Framework 开始aspnet开始强制检测Request参数安全而我们可以通过修改 Webconfig 来恢复 版本的模式

方法如下

修改Webconfig增加requestValidationMode=""属性值

<systemweb>
<httpRuntime requestValidationMode="" />
<pages validateRequest="false"></pages>
</systemweb>

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

requestValidationMode 有两个值

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

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

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

上一篇:Asp.net中判断一个session是否合法的方法

下一篇:ASP.NET Session的七点认识