【问题标题】:Strange routes shown in logs for MVC3 applicationMVC3 应用程序日志中显示的奇怪路由
【发布时间】:2011-11-22 12:01:53
【问题描述】:

在我的一个 MVC3 Web 应用程序中,我最近注意到分析报告中有一些看起来很奇怪的 URL。

这些 Url 看起来像是在路由中注入了编码值,但似乎与路由匹配,就好像编码值不存在一样。

普通网址

/MyWebsite/Controller/Action

在日志中偶尔出现

/MyWebsite/(F(B5l-uGhiwA7p6lMmAdzwc27qHH8p5Kdmy5l3ixub7-meZ315Xm-uOtFl_w8RRdki4pf_yhRysEOVZ93xPV3yxDkn5XhXaY5PLara_kiqFb8BlHDZkzqv6wHgOgMTWgUF0))/Controller/Action

我已经在服务器和本地机器上对此进行了测试,无论是否存在插入的值,它都会解析到控制器。

它们似乎遵循某种模式,因此我使用其他变体进行了测试

/MyWebsite/(F(anything-here))/Controller/Action

很好解决,我也可以将F替换为任何其他字母

/MyWebsite/(A(anything-here))/Controller/Action

但是,用 1 个以上的字母或其他字符代替 F 并不能解决

/MyWebsite/(AB(anything-here))/Controller/Action = 404 错误

我认为这可能与无 Cookie 会话有关,但我发现的信息表明 MVC 不支持此功能。有谁知道这是什么,或者有什么需要担心的吗?

编辑:

关闭本地浏览器的 cookie,我在 IIS 管理器中将会话状态设置为“自动检测”,它在 URL 中为我提供了一个与上述模式非常相似的键。

当我尝试在没有 Cookie 的情况下实际登录时,它似乎不起作用,但也许这是另一个问题。

将 IIS 管理器设置为“使用 Cookie”并使用关闭了 Cookie 的浏览器进行访问(我在高级首选项中使用带有“从不接受 Cookie”选项的 Opera)似乎没有像以前那样创建 URL,但从相似之处,它至少必须解释为什么它与路线匹配。

由于 IIS 在我的服务器上设置为“使用 Cookie”,我不确定为什么会生成这些 URL,但至少我现在知道它们是什么。或许这是一次 Session 劫持的尝试……

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-routing


    【解决方案1】:

    这确实看起来像存储在 URL 中的会话数据。它是 ASP.NET 的一个特性,也适用于 MVC。在 IIS 管理器中查看您网站的会话状态图标,它的 Cookie 设置模式很可能设置为自动检测。如果不支持 cookie,这可能会导致它回退到 URI 模式。

    【讨论】:

    • 设置为“使用 Cookie” - 是否仍会退回到 URL?
    • 我将此标记为答案,因为它似乎可以解释它是什么,为什么它会发生可能是另一个问题......谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-09-04
    • 2013-10-24
    • 2014-12-25
    • 2013-12-09
    • 2020-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多