为什么Google Chrome支持URL末尾的@



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

如果我有这个URLhttps://www.wikipedia.org我在URL的末尾放了一个@符号,后面跟着一个类似的域https://www.wikipedia.org@google.com为什么这会把我重定向到google.com,而不仅仅是失败。这是一个主要的安全风险,因为人们可以被重定向到其他URL。有人能解释一下为什么这是谷歌Chrome的一个功能吗?

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

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

根据HTTP规范,这是完全有效的。这并没有带来特别的安全风险,因为在用户提交请求之前,整个域对他们来说是可见的。在用户不知情的情况下,它不会被注入或添加。如果有人决定在他们的网站上创建一个像http://wikipedia.com.someothersite.com这样的多级子域,这将不会带来更大的安全风险。也许是欺骗,但安全风险并不比使用互联网的固有风险更大。

相关内容

  • 没有找到相关文章

最新更新