代码之家  ›  专栏  ›  技术社区  ›  Unknown

谷歌全球登录是如何工作的?

  •  24
  • Unknown  · 技术社区  · 17 年前

    每当我登录到一个谷歌服务,我就会自动登录到他们在不同领域的所有其他网站。

    我想知道的是他们如何能够访问属于另一个域的不同cookie和会话。

    我尝试在网上搜索,但找不到任何信息。我可能会拔出firebug并尝试找出答案,但我相信这里有人知道。

    1 回复  |  直到 17 年前
        1
  •  89
  •   Tyler Carter    17 年前

    谷歌登录的工作原理如下:

    1) 您可以登录,通常登录页面位于Google.com/accounts域下。

    1a)如果您不在Google.com/accounts域中,它会在您发布表单后将您转发到该域。这可以在像Blogger这样的网站上找到。

    一旦你进入Google.com/accounts域,他们会做两件事

    2) 他们设置了特定于Google.com/accounts域的cookie,这些cookie也只能通过安全连接发送。这是为了稍后验证您的身份。

    我之所以说multiple,是因为有几个cookie绑定到google.com/accounts域。我相信其中之一就是要确保在不允许安全连接的情况下不会出现所有故障

    3) 他们使用.google.com作为他们的域,设置一个跨越所有域的cookie,因为这将使cookie可用于任何域。

    4) 他们把你送回去。

    5) 如果它是一个位于不同域的站点,比如blogger,他们会在URL中发送一个授权密钥。页面会看到它,验证它,并为不同的域设置cookie。使用Google的Oauth可以看到这样的技术。

    这就是安全饼干的用武之地。

    如果您注意到,每当您在关闭浏览器后访问某个站点时,他们都会将您转发到google.com/accounts路径,在该路径中,他们会在安全连接下重新验证您,然后重置子域范围的cookie。然后他们送你回去。

    此外,谷歌Adsense等网站使用与Google.com/accounts相同的技术,在特定路径上制作安全cookie,然后使用更多全局cookie以允许更大的访问。

    其中一些是猜测,但鉴于非内幕人士所能看到的,我相信这接近事实。

    注意:我花了整整一个月的时间浏览了一个又一个的谷歌网站,看看他们是怎么做的。通过对这篇文章的投票,你减少了我对没有生活的悲伤