`
hax
  • 浏览: 964907 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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


以上。
0
0
分享到:
评论

相关推荐

    RefineSharedWorker:修复和增强 SharedWorker

    RefineSharedWorker 修复和增强 SharedWorker SharedWorker 是有前途的,但它又弱又漏,RefineSharedWorker 来拯救了。 我希望很快就不需要了:)注意仅Chrome深受启发什么和如何chrome 错误的解决方法: 如果只有一个...

    HTML5新特性 多线程(Worker SharedWorker)

    总结来说,HTML5的Worker和SharedWorker提供了一种机制,使JavaScript能够在后台运行任务,而不会影响用户界面的响应性,这对于处理大量数据、执行耗时计算或进行长时间的网络通信等场景非常有用。通过熟练掌握这些...

    sharedworker_chat:示例演示 SharedWorker 的使用以及不同选项卡之间的通信

    尽管示例本身(在同一域、同一浏览器、同一计算机上的聊天)并没有真正有用,除非您喜欢与另一个自我交谈,否则它有助于演示如何通信和广播消息来自同一域的选项卡之间。 有关如何使用 SharedWorker 的更多文档,...

    SharedWorkerSample:一个SharedWorker的简单示例

    SharedWorkerSample 发挥我在工作中遇到的新技术。 这是一个关于SharedWorker的小项目。 当单击sumit按钮时,输入中的数字将过帐到SharedWorker,然后SharedWorker将进行计算并将新的总和过帐到所有选项卡。

    大厂前端面试宝典大全1

    此外,HTML5的form可以通过autocomplete属性关闭自动完成功能,确保用户隐私。 DOM操作是前端开发的重要部分,书中提到实现多个标签页间通信的方法,如WebSocket、SharedWorker,以及利用localStorage等本地存储...

    前端开源库-web-worker-manager

    通过合理的管理和调度,开发者可以充分利用多线程的优势,处理复杂计算任务,提升前端应用的响应速度和用户体验。在实际项目中,结合具体业务场景,选择并适配合适的Worker Manager库,能极大地优化前端性能和代码...

    html5 worker

    HTML5 Worker 是一种在Web应用程序中实现多线程的技术,它允许开发者在后台线程中执行密集型计算或处理大任务,从而避免阻塞主线程(即用户界面线程),提高网页应用的响应速度和用户体验。这个压缩包文件...

    2021前端字节跳动真题解析.pdf

    这些新类型提供了更强的输入验证和用户界面,使得表单数据更加规范和友好。 #### API - **本地存储**:包括`localStorage`和`sessionStorage`,`localStorage`提供长期存储,页面关闭后依然保留;`sessionStorage`...

    wsww:将 socket.io Websocket 服务器封装在 HTML5 SharedWorker 中

    将 socket.io Websocket 服务器封装在 HTML5 SharedWorker 中安装依赖: 安装启动 websocket 服务器节点 io/server.js 启动一个网络服务器php -S 0.0.0.0:8888 -t www

    火狐浏览器for linux v52.0.2.zip

    火狐浏览器for linux是...默认启用了 DOM Promise 和 SharedWorker 实现和启用了 number 和 color 两个 input 类型 启用了 ECMAScript 国际化 API 移除附加组件栏,迁移其内容到导航工具栏 火狐浏览器for linux截图

    2021前端字节跳动真题解答

    - **新表单元素**:新增多种输入类型,如color、date、datetime-local、email、month、number、range、search、tel、time、url、week,提高了表单数据的验证和用户体验。 - **本地存储API**:包括localStorage和...

    10-网页多标签通讯.md

    在使用SharedWorker时,可以通过`postMessage`方法和`onmessage`事件处理来在不同标签页之间传递消息。不过需要注意的是,Web Worker不是线程而是独立的后台线程,不支持DOM操作。 4. **iframe通讯**:iframe内嵌...

    前端面试宝典大全.pdf

    其中,WebSocket、SharedWorker提供了快速实时的双向通信机制;而localStorage和cookies则提供了基于本地存储的数据交换方式。开发者需要注意特定浏览器的特性,比如Safari在无痕模式下使用localStorage时可能出现的...

    socketio-shared-webworker:WebWorker线程内的Socket.io客户端

    在共享的Webworker中运行Socket.io,可以为多个浏览器窗口和选项卡共享一个Socket.io Websocket连接。 替换了socket.io客户端。 快速安装 npm i --save socketio-shared-webworker 原因 单个websocket连接效率更...

    js前端Web Woeker和Shared Worker使用案例demo

    用户可以通过发送消息给Web Worker来执行特定的任务,而不会阻塞主线程的执行。同时,该示例还展示了如何与Web Worker进行通信和共享数据。 能做到什么: 1. 后台任务处理:通过创建Web Worker实例,可以在前端实现...

    疯狂HTML 5+CSS 3+JavaScript讲义(第2版)+源代码

    9.4 用户界面和滤镜属性 258 9.5 本章小结 263 第10章 盒模型与布局相关属性 264 10.1 盒模型和display属性 265 10.2 对盒添加阴影 275 10.3 布局相关属性 278 10.4 CSS 3新增的多栏布局 285 10.5 使用弹性...

    allserver:多传输和多协议的简单RPC服务器和(可选)客户端。 无样板。 自以为是。 简约的。 DX优先

    应该在能够运行JavaScript的(微)服务中使用-您的计算机,Docker,k8s,虚拟机,无服务器功能(Lambda,Google Cloud Functions,Azure Functions等),RaspberryPI,SharedWorker,线程,您都可以对其进行命名。...

    ITDay2-SharedWorkers

    共享工作者(Shared Workers)是JavaScript中的一个特性,用于在多个浏览器标签页或窗口之间共享同一份脚本资源,实现跨窗口通信。...然而,使用时需注意兼容性和安全问题,确保为用户提供稳定、高效且安全的体验。

Global site tag (gtag.js) - Google Analytics