对于以下场景: 有 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
1
martyartrt1 2018-12-25 11:52:41 +08:00 1
我有看到用 chrome 插件 和 服务器 进行同步 cookie 的
|
2
gonghao 2018-12-25 13:02:04 +08:00 1
|
4
explon 2018-12-25 13:20:25 +08:00 1
除了 script 标签调用文件通过 header 来种 cookie,其他方式应该都不行了
|
5
lhx2008 OP @gonghao 你这种情况好像还可以挂一个 iframe 用 postMessage,不知道行不行
|
8
Chingim 2018-12-25 13:49:19 +08:00 via Android
小弹窗应该被浏览器 block 吧,选项 2 也可以去掉了
|
9
lhx2008 OP @Chingim 不会的,点击那个链接上面的弹窗事件不会被 block,比如分享到微博啥的,我博客 https://luan.ma 的评论也是弹窗登录的,没问题
|
10
FaiChou 2018-12-25 15:03:12 +08:00
|
12
xiaochocking 2018-12-25 15:46:41 +08:00
@lhx2008 #6 很难读到的意思是?
|
13
yksoft1 2018-12-25 15:51:51 +08:00
WebSocket 可不可以连接到第三方?
|
14
lhx2008 OP |
15
rayhy 2018-12-25 16:21:25 +08:00 via Android
想问类似 Google analysis 这种产品也做不到识别多个网站的相同用户吗?如果能,它是怎么做到的?
|
16
xiaochocking 2018-12-25 16:38:56 +08:00
|
17
chinvo 2018-12-25 16:39:24 +08:00 via iPhone
@rayhy #15 他本质上是用的 Google.com 域名下的 cookie,并没有跨域读写
|
18
lhx2008 OP |
19
lhx2008 OP @rayhy GA 好像没有做跨站追踪。但是 Google 肯定有,而且 chrome 本身也不会把第三方 cookies 关闭,而且还给自己设置的 cookies 开后门不让你清除。
|
20
lhx2008 OP 跨站追踪用那个 iframe 的方法就可以做,大网站因为你访问过,所以在非 iframe 显式设置的 cookies,在别的网站用 iframe 可以隐式读到( postMessage ),比如在嵌入 GGAD 的网站,所以可以跟踪你的网络请求。所以我觉得这就是他们给大公司开的后门吧,哈哈
@rayhy |
21
xiaochocking 2018-12-25 17:09:02 +08:00
|