ASP.NET MVC2垃圾桶中的垃圾

时间:2011-08-26 11:49:03

标签: asp.net-mvc asp.net-mvc-2 routes

我们遇到一个奇怪的问题,Google的网站管理员工具会提醒我们注意一些相当奇怪的网址。我们不知道这些是如何生成的,并且想要了解它们是如何创建的。它们的形式如下:

http://test.xyz/(F(pC3Rt9u0AmQepAH-uY341LtzYEKrdkOOEgB9nDyfdDB6X9uL__MmT7S-euwfO_yPKKz8gdhnBhv8v1aGkuRj6G61sSaQ7mo1F8-PI32-pZxh9UJjogZk9Shvp7jdTaFLGHLEEw0_TtMNfvgoNMg6iQhOenxOisfvYc0BfbtxM53ksFvR0))/funk-radio

通常采用以下形式:

http://test.xyz/funk-radio

但asp.net MVC似乎处理垃圾(通过忽略它?)并且似乎(第一个)请求被正确路由。实际上,添加此垃圾时似乎所有路由都能正常工作。例如:

http://test.xyz/some/other/page

可以通过以下方式获得:

http://test.xyz/(F(pC3Rt9u0AmQepAH-uY341LtzYEKrdkOOEgB9nDyfdDB6X9uL__MmT7S-euwfO_yPKKz8gdhnBhv8v1aGkuRj6G61sSaQ7mo1F8-PI32-pZxh9UJjogZk9Shvp7jdTaFLGHLEEw0_TtMNfvgoNMg6iQhOenxOisfvYc0BfbtxM53ksFvR0))/some/other/page

这对我来说意味着垃圾具有某种特殊含义。任何人都可以告诉我这里发生了什么。这些路线不应该匹配,但显然它们确实如此。发生了什么事?

修改

我们没有使用cookiless auth。这是web.config的相关部分:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" defaultUrl="~" slidingExpiration="true"
        timeout="10080"/>
</authentication>

有趣的是,如果我使用标准用户代理连接到该网站:

Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0

使用其中一个垃圾填充的URL,然后请求得到尊重。

另一方面,如果我使用googlebot UA进行连接

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

我收到了400回复。

1 个答案:

答案 0 :(得分:3)

查看网址时,首先想到的是您的网站使用的是不使用Cookie的身份验证。当我使用ASP.NET时,对于一个项目,我们使用了身份验证cookiless,框架将该令牌放在每个url之前。