每当我登录一项Google服务时,我都会自动登录其他网域上的所有其他网站。
我想知道的是他们如何能够访问属于另一个域的不同cookie和会话。
我尝试在线搜索但我找不到任何信息。我可能会拔出萤火虫并试图找出,但我相信有人知道。
答案 0 :(得分:80)
Google登录的工作方式如下:
1)您通常登录Google.com/accounts域下的登录页面。
1a)如果您不在Google.com/accounts域中,则会在您发布表单后转发给您。这可以在Blogger等网站上找到。
到达Google.com/accounts域后,他们会做两件事
2)他们设置了特定于Google.com/accounts域的Cookie,这些Cookie也只能通过安全连接发送。这是为了稍后验证您的身份。
我说多个,因为有几个cookie绑定到google.com/accounts域。我相信其中一个是确保如果不允许安全连接,所有事情都不会失败
3)他们使用.google.com作为他们的域设置了一个跨越所有域的cookie,因为这将使cookie可用于任何域。
4)他们转发你。
5)如果它是不同域上的站点,例如博客,则他们会在URL中发送授权密钥。页面看到它,修复它,并为不同的域设置cookie。可以使用Google的Oauth看到这样的技术。
这是Secure Cookie的用武之地。
如果您注意到,每当您关闭浏览器后访问某个网站时,他们会将您转到google.com/accounts路径,在此路径中,他们会根据安全连接重新验证您的身份,然后重置子域范围的Cookie。然后他们送你回去。
此外,Google Adsense等网站使用与Google.com/accounts相同的技术,在特定路径上制作安全Cookie,然后使用更多全局Cookie以允许更多访问权限。
其中一些是猜测,但考虑到非内部人士可以看到的内容,我认为这接近事实。
注意:我花了整整一个月的时间,只是浏览从谷歌网站到谷歌网站,看看他们是如何做的。通过赞同这篇文章,你正在减少我没有生命的悲伤