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

时间:2011-07-12 11:18:26

标签: asp.net-mvc security

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

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

  1. 打开VS并创建一个新的MVC3 Internet应用程序示例。
  2. 在我的控制器操作的每个上面,我放置了[ValidateInput(false)]属性。
  3. 编辑根web.config,以便<httpRuntime requestValidationMode="2.0" />部分中包含<system.web />
  4. 虽然现在这意味着我可以在字段中提交类似<script>之类的表单,但仍然无法确定如何允许http://localhost/MySampleApp/Account/LogOn<script>等Request.Paths。

    如果我调用这样的网址,我仍然会“从客户端(&lt;)检测到一个潜在危险的Request.Path值。”

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

    非常感谢,

1 个答案:

答案 0 :(得分:4)

您可能会发现following blog post很有用。我个人的建议是避免在你的url路径中使用这些字符(除非严格要求),并使用查询字符串参数将这些数据传输到服务器:

http://localhost/MySampleApp/Account/LogOn?script=%3Cscript%3E