SharedWorker和用户隐私

最近做实时聊天,用到SharedWorker。目前为止,IE和Safari一直没有支持SharedWorker。过去可以认为是微软人品有问题,不过现在IE10、IE11在支持标准方面做得其实也不差。那么为什么IE不支持SharedWorker?我查了一下,发现这个2011年的讨论: http://lists.w3.org/Archives/Public/public-webapps/2011AprJun/thread.html#msg269

简单说,微软的人认为SharedWorker存在隐私隐患。根据spec,如果两个不同域的网站都包含相同的第三方域在iframe中,这两个iframe可以发起SharedWorker来互相通讯(从而可能泄漏用户信息,如知道同一个用户访问了这两个域的网站)。

读了讨论两遍并大致思考后,总结如下:

1. 嵌入相同域的iframe,则iframe本来就可以干许多事情,比如连接服务器。但是光能连服务器是不够的。要获得用户信息,必须有标识client身份的方式。比如cookie、localStorage、IndexedDB等机制。

2. 浏览器厂商可以或已经对上述机制做了隐私增强。比如IE的禁止第三方cookie追踪。

3. SharedWorker的问题在于它提供了一种新的用户关联机制。

4. 一种可能的限制方式是,如果iframe的嵌套链路的origin有不匹配,就不允许连接到原先的SharedWorker,而是新建一个Worker。

5. SharedWorker本身应增加cross-origin的能力,这样不需要通过iframe来曲线救国。

6. iframe可能需要更多限制方式,比如限制iframe请求不发送referrer。

7. 微软还是比较扯淡,因为其实可以实现出来并加以限制,而不用一直不实现。


以上。

你可能感兴趣的:(iframe,privacy,sharedworker)