【问题标题】:Unable to disable "...potentially dangerous Request.Path..." in MVC 3无法在 MVC 3 中禁用“...潜在危险的 Request.Path...”
【发布时间】:2011-07-12 11:18:25
【问题描述】:

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

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

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

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

如果我调用这样的 URL,我仍然会得到 “从客户端检测到潜在危险的 Request.Path 值 (

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

非常感谢,

【问题讨论】:

    标签: asp.net-mvc security


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您 - 澄清一下 - 我们需要完全禁用此功能,以便我们可以对应用程序运行完整的 Skipfish 测试......目前它无法测试很多“坏 url”尝试因为 MVC 内置的东西......我觉得仅仅依靠 .Net 实现 url 安全有点不舒服。
    猜你喜欢
    • 2011-03-07
    • 1970-01-01
    • 2011-08-20
    • 2012-05-22
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多