无法在MVC 3中禁用"......有潜在危险的Request.Path ..."

isN*_*247 5 security asp.net-mvc

我知道有很多关于这个主题的帖子,但无论我怎么努力(使用这些帖子中的细节)我都不能完全从MVC 3中删除请求验证.

通过一个丑陋但简单的测试,我遵循了以下步骤: -

  1. 打开VS并创建一个新的示例MVC3 Internet应用程序.
  2. 在我的控制器动作的每个上面我放置了[ValidateInput(false)]属性.
  3. 编辑根web.config以便<httpRuntime requestValidationMode="2.0" />在该<system.web />部分中.

虽然现在这意味着我可以提交类似于<script>该字段的表单,但我仍然无法弄清楚如何允许Request.Paths等http://localhost/MySampleApp/Account/LogOn<script>.

如果我调用这样的URL,我仍然会收到"从客户端(<)检测到一个潜在危险的Request.Path值."

有谁知道如何在.Net 4.0上真正删除MVC 3中的所有请求验证?

非常感谢,

Dar*_*rov 4

您可能会发现以下博客文章很有用。我个人的建议是避免在 url 路径中使用此类字符(除非严格要求),并使用查询字符串参数将此类数据传输到服务器:

http://localhost/MySampleApp/Account/LogOn?script=%3Cscript%3E
Run Code Online (Sandbox Code Playgroud)