【问题标题】:Can websites share data stored on the client-side?网站可以共享存储在客户端的数据吗?
【发布时间】:2016-05-31 22:27:02
【问题描述】:

网站有没有办法与浏览器上的另一个存储数据进行通信?

我认为 cookie 严格适用于同一域(和子域),但我注意到一些可疑情况,在这些情况下,网站似乎能够跟踪我在另一个网站上的存在。

我还有 NoScript 来阻止每个站点的 JavaScript。

【问题讨论】:

    标签: security cookies web


    【解决方案1】:

    他们很可能正在使用第三方 Cookie 或超级 Cookie。如果您不确定这些是什么意思,请在 Wikipedia 上查看它们的定义:

    https://en.wikipedia.org/wiki/HTTP_cookie#Supercookie https://en.wikipedia.org/wiki/HTTP_cookie#Privacy_and_third-party_cookies

    【讨论】:

    • 这真的很可怕;我会考虑在 Firefox 中禁用它们。稍后我会查看链接,谢谢。
    【解决方案2】:

    当然,通过3rd party cookies。这是一个简单的例子:

    想象一下,如果您访问的网站包含此代码:

    <script src="//tracker.example.com/foo.js"></script>
    

    foo.js 是动态生成的。如果浏览器没有向tracker.example.com域发送cookie,则会生成一个唯一ID并将其存储在cookie中。

    例如cookie 由 HTTP 响应标头设置,为用户分配一个新的全局唯一 ID:

    Set-Cookie: userid=d68267df-35f4-4443-9d8a-3afeebdf8f95
    

    在对 foo.js 的后续请求(包括来自浏览器的 cookie 值)时,foo.js 代码可以基于此 cookie 值设置一个变量。

    var userId = 'd68267df-35f4-4443-9d8a-3afeebdf8f95';
    

    这允许网站跟踪此 ID 下的所有操作。例如然后域example.net 可以使用该用户ID 设置自己的cookie,因此用户所做的任何事情都由该ID 记录(单击example.net/shiny_thing 现在将在cookie 中设置ID)。

    因此,如果两个网站 example.netexample.org 使用从 tracker.example.com 调用的此脚本并使用相同的后端数据存储,他们将能够跟踪您的活动并知道用户 ID d68267df-35f4-4443-9d8a-3afeebdf8f95 点击example.org 上的 foo、bar 和 foobar,并在 example.net 上点击了闪亮的东西。

    如果您禁用了 JavaScript,那么这种类型的跟踪会更加困难,但并非不可能。最好的方法是禁用 3rd 方 cookie,而不是依赖禁用 JavaScript。

    【讨论】:

      猜你喜欢
      • 2014-07-11
      • 1970-01-01
      • 2018-07-16
      • 2019-08-06
      • 2021-05-03
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2019-06-14
      相关资源
      最近更新 更多