【问题标题】:ASP.NET MVC2 garbage in urls网址中的 ASP.NET MVC2 垃圾
【发布时间】:2011-11-04 11:24:54
【问题描述】:

我们遇到了一个奇怪的问题,即 Google 的网站管理员工具会提醒我们一些它试图抓取的相当奇怪的 URL。我们不知道这些是在哪里生成的,并且想了解它们是如何创建的。这些是以下形式:

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

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

编辑

我们没有使用 cookie 身份验证。这是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 响应。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 当然解释了为什么令牌可能会被忽略,但我们没有启用无 cookie 身份验证,所以我仍然对最初生成该 URL 的方式一无所知。我已更新我的问题以反映此附加信息。如果我禁用 cookie 并尝试登录,则不会创建垃圾。登录失败(静默)。
    • 查看 sessionstate 标签:类似
    • 也可以是cookieless="auto"。我不记得确切的语法,但意思是“检测客户端是否支持 cookie 并在可能的情况下使用它们”。
    • 我们的 web.config 中没有 sessionState 标签,所以我们只是使用默认设置。我们偶尔(非常)使用会话,但关闭 cookie 不会导致在使用会话或身份验证时生成奇怪的令牌。嗯……
    • 另外,奇怪的是,网址在我的开发机器上工作正常,但在我同事的机器上,它们会导致 HTTP 400 错误。 Google 也将它们视为 HTTP 400。我将打开一个 firebug 会话以确定存在哪些差异(如果有)。
    猜你喜欢
    • 2015-01-18
    • 2015-07-24
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    • 2020-03-31
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多