有另一种方法可以跟踪用户而不使用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的网站。

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

转自:http://www.admin10000.com/document/2690.html

ikeepstudying.com

下载附件:cookielesscookies-master

不使用 Cookie 的“Cookie”技术相关推荐

  1. 【Servlet】Cookie会话跟踪技术

    Cookie Cookie技术是一种在客户端保持会话跟踪的解决方案,会话数据保存在客户端浏览器. Cookie在用户第一次访问服务器时,由服务器通过响应头的方式发送给客户端浏览器:当用户再次向服务器发 ...

  2. php cookie防伪造,技术分享:Cookie 防伪造 防修改

    原标题:技术分享:Cookie 防伪造 防修改 主要防止非法用户修改cookie信息,以及cookie的超时时间 传统cookie存储,Cookie(name, value),value很容易就被篡改 ...

  3. java day40【会话技术:Cookie 、会话技术:Session 、JSP:入门学习】

    第一章  会话技术 1. 会话:一次会话中包含多次请求和响应. * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止 2. 功能:在一次会话的范围内的多次请求间,共享数据 3. ...

  4. cookie 会话跟踪技术

    cookie 会话跟踪技术 1.cookie就是会话跟踪技术 会话 : 从浏览器打开(网站打开) 到浏览器关闭的这样一个过程称为一次会话 会话跟踪技术 : 在打开浏览器操作cookie后,再次打开其他 ...

  5. 真的了解Cookie吗 - Cookie详解

    前言 看了很多博客文章,对一些概念都一直模模糊糊 希望能够对JavaWeb的一些知识深刻了解一下 目录 HTTP的无状态 Cookie 2.1. Cookie API 2.2. Cookie的属性 2 ...

  6. jquery php cookie,jQuery的Cookie插件 cookie 使用方法

    cookies 是一个用 jQuery 来操作 Cookie 的插件.因为使用传统的Javascript来设置和获取Cookies信息很麻烦,要写上几个函数来处理,所以为了方便日常的开发工作,就有人写 ...

  7. Cookie、cookie使用方法

    Cookie.cookie使用方法.保存用户名密码 //设置Cookie,//cname 获取时所需参数//username,password 用于记住账号密码,如果只要存一个参数 password为 ...

  8. php登录 cookie,使用cookie进行简单的PHP登录

    请不要尝试在客户端cookie中存储"已验证"之类的内容;那令人难以置信的不安全感.用户可以修改cookie中的任何内容 – 因此在这种情况下,我可以在浏览器设置中查找cookie ...

  9. android webview 设置cookie时间,解决Android webview设置cookie和cookie丢失的问题

    Android页面嵌套了一个h5,H5页面内部有用户登陆页面,发现h5页面的登陆功能无法使用,一直登陆失败.和web那边商量一会,发现js写入的cookie丢失了.所有需要Android这边在重写写入 ...

  10. 【cookie】cookie是什么,如何使用cookie?

    cookie是什么,如何使用cookie? Cookie是保存在客户端的纯文本文件.比如txt文件.所谓的客户端就是我们自己的本地电脑.当我们使用自己的电脑通过浏览器进行访问网页的时候,服务器就会生成 ...

最新文章

  1. java框架知识_java框架知识点总结
  2. python解释器在语法上不支持 编程方式-python解释器在语法上不支持什么编程方式_后端开发...
  3. IT兄弟连 JavaWeb教程 jQuery中其他AJAX支持的函数
  4. 铁乐学python_Day40_进程池
  5. None用法+连接字符串优先使用join +用format而不是%+区别可变对象和不可变对象(list的深拷贝和浅拷贝)
  6. 包含几通道数据_功率分析仪和数据采集记录仪有什么区别?
  7. Tesla对德国政府的审批流程表示受够了
  8. 力扣904,水果成篮(JavaScript)
  9. 怎样查找共享文件_计算机操作系统学习笔记(五):文件管理
  10. 区别:synchronized与static synchronized
  11. Mac eclipse adt sdkmanager打不开
  12. Web前端开发技术实验与实践(第3版)储久良编著实训4
  13. 通用双向循环链表学习
  14. 计算机音乐广东爱情故事,改编自网易云音乐——广东十年爱情故事热评
  15. FESCO数字一体化建设项目简介
  16. 【文本】HTML5 Canvas小项目:为坐标轴添加数字标签(带刻度线)
  17. Android远程真机调试(电脑使用 Vysor 控制手机)
  18. Java程序,判断一个字母是元音还是辅音
  19. Latex固定表格图片位置
  20. hdoj 4417 Super Mario 【树状数组 + 思维】

热门文章

  1. 传球游戏(洛谷-P1057)
  2. Biorhythms(POJ-1006)
  3. 逆序对(洛谷-P1908)
  4. 信息学奥赛一本通C++语言——1007:计算(a+b)×c的值
  5. 信息学奥赛一本通C++语言——1014:与圆相关的计算
  6. ubuntu中vscode配置python_ubuntu下vs code的python虚拟环境的配置
  7. rabbitmq使用_RabbitMQ-1使用
  8. 大于3小于4的整数bleem_[电影点评]3和4之间还有整数吗?疯子数学家发现,只要证明出来就能穿越今天为大家带来一部只要证明3和4之间还有一个整数就能穿越时空的科幻悬疑片《隐匿的数字》 故...
  9. STM32那点事之构建工程模板
  10. (OPN)Onion Peel Networks for Deep Video Completion