MVC3应用程序日志中显示的奇怪路由

时间:2011-11-22 12:01:54

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

在我的一个MVC3网络应用程序中,我最近在分析报告中发现了一些看起来很奇怪的网址。

Urls看起来像是有一个注入路线的编码值,但似乎与路线匹配,好像编码值不存在一样。

普通网址

/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

但是,用F字母或其他字符代替F不能解决

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

我认为这可能与Cookieless会话有关,但我发现的信息表明MVC不支持这种情况。有谁知道这是什么,或者是否有什么值得担心的?

修改

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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