gpt4 book ai didi

asp.net - 奇怪的 URL 绕过路由,括号大写字母括号任何两个右括号

转载 作者:行者123 更新时间:2023-12-01 16:03:36 24 4
gpt4 key购买 nike

我今天在工作的网站上偶然发现了一些奇怪的行为。我们的 SEO 顾问希望从 Google 索引中删除一些看起来很奇怪的链接,这是一项看似简单的任务。但事实证明这是非常困难的。

该网站是一个 .net MVC 5.2.3 应用程序。我们查看了路由、我们自己的库等。没什么奇怪的。过了一会儿,我们放弃了,并尝试通过在 web.config 中设置规则来简单地将请求重定向到这些 url。原来这些 URL:s 是无与伦比的!不知何故,在正确的条件下,URL 的关键部分似乎避免了匹配规则以及稍后在 MVC 应用程序中的路由。

我们将神秘的 URL:s 缩小到格式 (T(anything))其中 T 可以是任何大写字母,任何东西都可以是 eh,任何东西。它被放置在 URL 的开头,就好像它是一个目录一样。在正则表达式中:\([A-Z]\([a-zA-Z0-9]*\)\)
我已经测试并发现了相同的行为:

  • .net MVC5 站点
  • .net MVC3 站点
  • .net Web 窗体站点
  • http://asp.net
  • http://stackoverflow.com

  • 来自 stackoverflow.com 的一些示例:
  • 绕过路由:https://stackoverflow.com/(K(jonas))/questions
  • 路由正常 (404):https://stackoverflow.com/jonas/questions
  • 绕过路由:https://stackoverflow.com/(G(hello))/users/1049710/jonas-%C3%84ppelgran
  • 路由正常 (404):https://stackoverflow.com/gandhello/users/1049710/jonas-Äppelgran

  • 它似乎不会影响整个网络,所以它不应该是浏览器或 HTTP 问题。一些例子:
  • 路由正常 (404):http://php.net/(T(testing))/downloads
  • 路由正常 (404):https://www.iana.org/(T(testing))/domains/reserved

  • 任何人都可以解释发生了什么?

    我能做些什么来禁止这些 URL:s 绕过路由?

    最佳答案

    显然,这是 ASP.NET 中称为“无cookie session ”的功能。请参阅“无 Cookie session ID”部分 here在 MSDN 文档中。

    基本思想是将 session id(如果 session 状态已启用)存储在 cookie 中,而是现在嵌入在 URL 中。

    我们(堆栈溢出)完全禁用 session 状态(通过将 sessionState 模式设置为 off )。据我所知,最终结果是,只要使用与 session ID 格式匹配的 URL 之一,该信息就会被简单地丢弃。

    在 Google 中通向我们的链接中也没有包含它,这让我认为您的网站可能被配置为在 URL 中实际生成 session ID?除了禁用该功能外,您在这里可能无能为力。尽管如此,请参阅我上面链接的 MSDN 页面上的“重新生成过期 session 标识符”,以了解如何至少防止意外 session 共享(如果尚未完成)。

    关于asp.net - 奇怪的 URL 绕过路由,括号大写字母括号任何两个右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44785393/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com