• [转]不用Cookie的“Cookie”技术


    有另外一种比较隐蔽的用户追踪技术,不使用cookie或者Javascript。很多网站已经在用了,但知道的人不多。本文就来介绍一下这种技术是如何追踪用户,用户又该如何避免追踪。

    这种技术不依赖于:

    • Cookies
    • Javascript
    • LocalStorage/SessionStorage/GlobalStorage
    • Flash, Java或插件
    • 你的IP地址或者User Agent头
    • Panopticlick

    相反,它使用另外一种存储方式,而这种存储即使浏览器关闭仍然能够存在,那就是浏览器缓存。 即使你完全禁用了cookie和Javascript,甚至使用VPN服务,这种技术仍然能够跟踪到你。


    示例

    到这个链接(http://lucb1e.com/rp/cookielesscookies/ )上提交一些数据,然后关闭浏览器,然后再打开,看看数据是不是仍然在那里?

    看一下你的Cookie里面的有没有东西?没有的吧,这些都在我们几乎没有察觉到的一个假的图片校验。看一下上面那个眼睛,哈哈,那是我们的追踪者。

    它如何工作?

    下图是一个大致描述

    图像中的ETag是一种图像校验方式,当图像发生变化的时候,ETag也会随之发生变化。因此,浏览器会拿着图片和ETag去服务器进行校验,让服务器来应答这张图片是否发生改变,如果没有的话,这张图片就直接从浏览器缓存中命中返回,无需再去服务器重新拉取图片了。

    细心的读者可能已经大概知道这个是如何可以实现追踪的:浏览器把之前的ETag发回到服务器就OK了。不过,通过这个ETag貌似能产生好多好多Cookie,不是吗?于是,服务器可以给每个浏览器一个唯一的ETag,再次收到这个ETag的时候,就能知道是你了。

    Demo中的一些技术细节和缺陷

    Demo为了能够不借助于Javascript,我不得不找出一些信息对你来说是唯一的,除了那个ETag。图片是在页面加载后加载的,不过只有图 片里面有ETag。我是如何将时间信息显示出来呢? 我确实做不用Javascript动态更新数据,而这Demo就是要证明不用依赖Javascript。

    一些小bug:

    所有你看到的信息都是上一次的。需要按F5才能刷出最新的。
    当你访问页面的时候不携带ETag (比如隐身模式),会话就会被清空。 或者说,你刷新页面的时候,数据就会消失。
    我没有看到这种技术的比较简单的解决方案。当然有些东西可以做一下,可能其他网站不会用,不过我就是想让代码简单实用就行。

    请注意,当你确实想去追踪某个人,你又不打算告诉用户他们正在被追踪,你这些bug是不存在的!

    源代码

    哪个程序没有源代码? 噢,好像是微软的Windows。

    https://github.com/lucb1e/cookielesscookies

    如何避免追踪?

    如果你想更安全一些, 我强烈建议你开启隐身模式,使用HTTPS。只要这样开一下,就能防止BREACH (最新的https攻击),禁止了cookie跟踪,也消除本文讲到的缓存跟踪的问题。用网银的时候,我会使用隐身模式。在Firefox(IE应该也 是)按Ctrl + Shift + P,在Chrome中按Ctrl + Shift + N。

    除此之外,要看你对于隐私安全的洁癖程度了。

    目前,我没有简单完美的办法,因为缓存跟踪几乎是无法察觉的,但同时缓存本身很有用,能够节省时间和金钱。网站将消耗更少的带宽(你仔细想想,到底 是谁会为这些流量买单),你的网页加载速度更快,尤其是在移动设备上,将会有很大的区别,如果你没有一个无限流量的套餐的话,如果你在网速很慢的地方,缓 存的效果就更加明显了。

    听了这些,如果你还是不放心,那么完全禁用缓存吧。没有了存储性状态或者信息,任何追踪都不会发生,就是每次都要重新加载,速度会慢一些,并且我个人并不认为值得这样做。

    Firefox的插件Self-Destructing Cookies有这样的功能:当你一段时间不使用浏览器,它就会清空你的缓存。这个插件的定期清空缓存可能是一个不错的选择,只有在访问会话期间会被追 踪,不过反正他们也能够记录下哪个IP访问了哪个页面,所以这是没有什么大不了的。不过之后的访问由于缓存被清空(假设跟踪是基于缓存),看起来都是一个 新的用户,追踪将无法继续。

    我不知道任何其他能够定期清除缓存的插件(例如,每72小时一次),但应该是有的。这将是一个很好的方法,这对于99%的用户都是有用的,因为这个并不会使性能下降太大,同时还限制了追踪。

    更新:我听说Firefox的插件SecretAgent也有ETag的覆盖,以防止这种类型的追踪。你可以对于有些站点设置白名单重置缓存,以达到防止追踪的目的。这个已经确认能够防止追踪。SecretAgent 的网站。

    原文地址:http://lucb1e.com/rp/cookielesscookies/
  • 相关阅读:
    naturalWidth、naturalHeight来获取图片的真实宽高
    网站访问量等数据统计
    电话号码中间四位用****代替
    前端通过url页面传值
    前端存取cookie
    SQL Server 硬件和软件要求
    sql server 2017安装
    Js小知识及一些常见易混淆的知识点
    前端学习资料汇总
    短信验证码
  • 原文地址:https://www.cnblogs.com/fuxinci/p/3875487.html
Copyright © 2020-2023  润新知