对于以下场景: 有 API 服务器 a.com ,同一个用户在 b.com 和 c.com 调用 a.com 的 API 的时候,a.com 可以识别到这是同一个用户。
或者说,在 b.com 登录 a.com 之后,c.com 访问 a.com 的 API 也是登录状态。
如果浏览器没有开启第三方 Cookies 保护,有以下这些隐式的方法:
如果浏览器开启了禁止 第三方 Cookies,对于一些浏览器,上述的第三个仍然可以使用,但是 Safari 均不行。而且 Safari 默认禁止第三方 Cookies,如果需要用户开启,这也看作是 显式 的方法。
在禁止第三方 Cookies 的情况下,Facebook 以前使用了一种浏览器指纹的技术进行隐式追踪,来识别用户,这对于大多数浏览器仍然可行,但是苹果今年在开发者大会上面说,“我们只提供了一个简化的系统配置,因此,你的 Mac 看起来更像其他所有人的 Mac 电脑,而数据公司要想识别你的设备并追踪你,将会变得更加困难”,说明,这个路径也被堵死了。
另外,还有一些是可行的跨多域方法,但是都是显式的,我列出来,以免大家回复的时候误会
当然,为了防止还是有人出来杠我,我再提一下 jsonp, 普通 CORS, localstorage 和 document.cookie,这些虽然是隐式的,也可以做所谓的跨域,但是不能跨多域,在 b.com 获取到的 token/cookies,c.com 不知道,在 c.com 仍然需要重新获取 token
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.