【问题标题】:Why does Google Chrome support @ on the end of a URL [closed]为什么谷歌浏览器支持 URL 末尾的 @ [关闭]
【发布时间】:2021-07-27 10:57:01
【问题描述】:

这是一个关于 URL 的安全问题

如果我有这个 URL https://www.wikipedia.org 并且我在 URL 的末尾放置了一个 @ 符号,后跟一个类似 https://www.wikipedia.org@google.com 的域,为什么这会将我重定向到谷歌。 com 而不仅仅是失败。这是一个主要的安全风险,因为人们可能会被重定向到替代 URL。谁能解释一下为什么这是 Google Chrome 中的一项功能?

【问题讨论】:

    标签: html google-chrome security url


    【解决方案1】:

    URL 中的@ 符号用于指定身份验证详细信息,如RFC 3986 Section 3.2.1。通常,您会看到类似于 http://username:password@domain.com 将用户名和密码传递给域。

    在您的示例中,www.wikipedia.org(@ 符号之前)将在 HTTP Authorization header 中发送到期望它的站点。它不会重定向到另一个域。它将@ 符号之前的部分发送到指定的域(在您的情况下为 google.com)。

    这完全符合 HTTP 规范。这并没有真正带来特定的安全风险,因为用户在提交请求之前可以看到完整的域。它不会在用户不知情的情况下注入或添加。这不会比某人决定在他们的网站上创建一个多级子域(如http://wikipedia.com.someothersite.com)更具安全风险。可能具有欺骗性,但安全风险不超过使用互联网的固有风险。

    【讨论】:

    • 感谢您提供此信息,但您的示例对我不起作用。你能告诉我一个工作的例子吗?
    • @user3500000 抱歉,示例站点不再支持此功能。但是这个其他 SO 问题包含与我所描述的内容相关的更多信息,这些信息可能会有所帮助:stackoverflow.com/questions/4980912/…
    猜你喜欢
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2019-02-12
    相关资源
    最近更新 更多