requestValidationMode="2.0" 是什么意思?实际上呢?

发布于 2024-11-13 11:59:13 字数 416 浏览 5 评论 0 原文


我正在尝试解决“从客户端检测到潜在危险的 Request.Form 值”问题,并给出答案和 Scott Hanselman 建议

<httpRuntime requestValidationMode="2.0" />

在 Web.config 中进行设置(以及向有问题的方法添加属性)。
我意识到这将验证模式更改为 ASP.NET 2.0,但这意味着什么?
另外,此更改是否有我应该注意的副作用?

谢谢。

I'm trying to solve a "A potentially dangerous Request.Form value was detected from the client" problem, and SO answers and Scott Hanselman recommend setting

<httpRuntime requestValidationMode="2.0" />

in Web.config (along with adding an attribute to problematic Methods).
I realize this changes the validation mode to ASP.NET 2.0's, but what does that mean?
And also, does this change has any side effects I should be aware of?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

羁〃客ぐ 2024-11-20 11:59:13

查看 MSDN 的 HttpRuntimeSection.RequestValidationMode 属性< 中的说明< /a>.

2.0。仅对页面启用请求验证,不适用于所有 HTTP 请求。另外,页面的请求验证设置
配置文件或 @ Page 指令中的元素(如果有)
在单个页面中用于确定哪个页面请求
验证。

Check out the description at MSDN's HttpRuntimeSection.RequestValidationMode Property.

2.0. Request validation is enabled only for pages, not for all HTTP requests. In addition, the request validation settings of the pages
element (if any) in the configuration file or of the @ Page directive
in an individual page are used to determine which page requests to
validate.

冰之心 2024-11-20 11:59:13

查看 ASP.NET 请求验证>

ASP.NET 中的请求验证功能提供了一定程度的
针对跨站点脚本 (XSS) 攻击的默认保护。在
以前版本的 ASP.NET,请求验证是通过以下方式启用的
默认。但是,它仅适用于 ASP.NET 页面(.aspx 文件和
他们的类文件)并且仅当这些页面正在执行时。

在 ASP.NET 4 中,默认情况下,对所有请求都启用请求验证
请求,因为它是在 BeginRequest 阶段之前启用的
HTTP 请求。因此,请求验证适用于以下请求
所有 ASP.NET 资源,而不仅仅是 .aspx 页面请求。这包括
请求,例如 Web 服务调用和自定义 HTTP 处理程序。要求
当自定义 HTTP 模块读取
HTTP 请求的内容。

因此,请求现在可能会发生请求验证错误
以前不会触发错误。恢复到的行为
ASP.NET 2.0请求验证功能,添加以下设置
在 Web.config 文件中:

<httpRuntime requestValidationMode="2.0" />

但是,我们建议您分析所有请求验证错误
确定是否存在现有的处理程序、模块或其他自定义代码
访问可能受到 XSS 攻击的潜在不安全 HTTP 输入
向量。

Take a look at ASP.NET Request Validation>

The request validation feature in ASP.NET provides a certain level of
default protection against cross-site scripting (XSS) attacks. In
previous versions of ASP.NET, request validation was enabled by
default. However, it applied only to ASP.NET pages (.aspx files and
their class files) and only when those pages were executing.

In ASP.NET 4, by default, request validation is enabled for all
requests, because it is enabled before the BeginRequest phase of an
HTTP request. As a result, request validation applies to requests for
all ASP.NET resources, not just .aspx page requests. This includes
requests such as Web service calls and custom HTTP handlers. Request
validation is also active when custom HTTP modules are reading the
contents of an HTTP request.

As a result, request validation errors might now occur for requests
that previously did not trigger errors. To revert to the behavior of
the ASP.NET 2.0 request validation feature, add the following setting
in the Web.config file:

<httpRuntime requestValidationMode="2.0" />

However, we recommend that you analyze any request validation errors
to determine whether existing handlers, modules, or other custom code
accesses potentially unsafe HTTP inputs that could be XSS attack
vectors.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文