不使用 Cookie 的“Cookie”技术

来源:互联网 发布:剑三苍云成男脸型数据 编辑:程序博客网 时间:2024/04/26 06:16

原文地址:http://lucb1e.com/rp/cookielesscookies/


有另一种方法可以跟踪用户而不使用cookies或Javascript。这种方法 已经被用于无数网站,但几乎没人人们知道。本页解释这种方法是如何运作的,以及是如何保护你自己的。

  这种跟踪方式 无需使用:

  • Cookies
  • Javascript
  • LocalStorage/SessionStorage/GlobalStorage
  • Flash、Java或其他组件
  • 你的IP地址或是用户代理字符串(User Agent String )
  • 任何Panopticlick所使用的方式

  相反,它使用另一种存储方式,在浏览器重启的时候也可以保持持久性,这就是: caching

  即使你完全禁用cookies、关闭Javascript功能并且使用VPN,这种技术依然可以追踪到你。

  在线示例:http://lucb1e.com/rp/cookielesscookies/

  我们继续,输入一些东西然后保存。接着关闭你的浏览器再一次打开这个页面。它是不是还在那儿呢?

  检查你的cookies,有没有?当然没有,因为它完完全全在一张假图片的校验和里,几乎没人能意识到。看到页面顶部右边的眼睛了吗?这就是我们的跟踪器。

  那么它是怎么运作的呢?

  这是一张概览图

  图片中的ETag是一种校验和。当图片改变时,校验和也会改变。所以当浏览器有图片并且知道校验和时,它可以将校验和传送给web服务器来验证。然后web服务器验证图片是否改变。如果没有,就不用重新传送图片了,省下了不少数据流量。

  细心的读者或许已经注意到,可以这样追踪人群:浏览器发送回给服务器的信息就是它之前所接收到的(ETag)。这听起来和cookies十分相似。服务器可以给每个浏览器一个唯一的ETag,浏览器再次连接时ETag可以从数据库中找出来。本例的技术要点(以及bug)

  为了描述它是如何不必使用Javascript就可以生效的,我必须找一些专属与你的信息,ETag除外。图片在页面加载完后加载,但只有图片包含ETag。我要怎样在页面上显示实时信息呢?结果是在不动态刷新页面的情况下,我不能做到这一点,但动态刷新要用到Javascript,这又是我所想避免的。

  这个鸡生蛋,蛋生鸡的问题引出了一些bug:

  - 所有能见的信息都是之前页面加载的。只有按F5可以看到新的数据。

  - 当你浏览一个页面而你没有ETag的时(比如匿名模式),你的session会被清空。只有重载时才能再次看到。

  我没见过有简单的方案可以解决这些问题。当然事在人为,但不像其他网站,而且我想尽量保持代码简单并贴近现实。

  注意在你真的要追踪用户时,这些bug一般不会存在。因为你不会想让用户知道他们在被追踪。

  源代码

  什么项目没有源代码呢? 哦对,是微软的Windows。

  https://github.com/lucb1e/cookielesscookies

  我们该怎么去阻止它?

  有一个方法我强烈推荐你做的就是, 任何时候你想更安全的浏览一个网页的话, 请开启一个隐私浏览窗口, 并仅使用https连接方式。 这么做能够单方面地消除形如 BREACH (最新的https攻击方式)攻击的影响, 禁止任何可能会产生的追踪cookie, 并且也能消除我在本页面所展示的缓存追踪的问题的影响, 我在网上购物的时候会使用隐私浏览模式。 在 Firefox 下(我想IE应该也是)快捷方式是 Ctrl+Shift+P, 在 Chrome 下则是 Ctrl+Shift+N。

  除此以外, 这也取决于你的偏执级别。

  由于缓存追踪实际上无法被侦测, 所以当前我还没有很直观的解决方法, 更因为缓存自身很有用(包括对你)并能够节省时间和金钱。 网站管理员们将会消耗更少的带宽(你可以想象一下, 终端用户最终将为这份因为更多的带宽而开具的账单埋单), 你的网页会更快加载, 尤其是在移动设备上会更加明显如果说你没有办理不限流量的4G套餐的话。 若你居住在有着高延迟, 低带宽的农村地区, 那就更糟糕了。

  如果你非常疑神疑鬼,最好禁用所有缓存。这会阻止任何追踪的发生,但我个人认为得不偿失。

  Firefox插件Self-Destructing Cookies,能在你不使用浏览器一段时间后,清空你的缓存。这也许是个不用禁用缓存的好选择;你 会在访问时被追踪,但他们通过看哪个IP访问哪个页面的方法早就做到了这一点,所以这种方法很合算。以后任何访问都仿佛来自另一个用户,如果所有其他的追踪方式也已经被阻止。

  我不知道任何一款插件可以定期删除缓存(比如每72小时一次),但也许有。这对99%的用户来说会是个好主意,因为它限制追踪功能的同时,对性能影响较小。

  更新: 我听说Firefox插件SecretAgent也使用ETag盖写来防止这种追踪手段。如果你是根据域名来阻止追踪,可以添加白名单来重新开启缓存。这款插件可以阻止追踪的功能已经得到确认。SecretAgent的网站。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 一氧化二氮中毒怎么办 电脑开机变慢了怎么办 怎么办抚顺韦德健身卡 预售健身卡合法吗怎么办 被浓硫酸泼到怎么办 婴儿误喝了生水怎么办 宝宝喝了生水拉肚子怎么办 因妈妈喝生水宝宝拉肚子怎么办 喝了几口生水怎么办 不小心吃到蟑螂怎么办 吃了有蛆的樱桃怎么办 不小心误食了蛆怎么办 吃了有蟑螂的汤怎么办 调节天平时指针向右怎么办 香薰蜡烛融化了怎么办 香薰蜡烛挂壁怎么办y 粗蜡烛只烧中间怎么办 紫薯馒头变绿怎么办 小孩手开水烫了怎么办 被油烫伤了怎么办才不留疤 烫伤水泡蹭破了怎么办 烧伤的水泡破了怎么办 烧伤后水泡破了怎么办 烫伤泡破了红肿怎么办 烧伤第二天水泡破了怎么办? 烧伤后换药特别疼怎么办 盐酸溅到皮肤上怎么办 磷性磷酸酶高440怎么办 浓硫酸沾到皮肤上怎么办 浓硫酸溅到皮肤上怎么办 浓硫酸滴到皮肤上怎么办 浓硫酸洒在皮肤上怎么办 浓硫酸溅到眼睛里怎么办 盐酸弄到眼睛了怎么办 稀硫酸进眼睛里怎么办 草酸弄到皮肤上怎么办 大理石被盐酸烧发白怎么办 香薰蜡烛化了怎么办 吸入了大量燃烧纸气体怎么办 狗链条上锈了怎么办 思维迟钝反应慢嘴笨怎么办