有另一种方法可以跟踪用户而不使用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
相关推荐
后来人们就发明了Cookie技术,当用户访问网页时,它能够在访问者的机器上创立一个文件,我们把它叫作Cookie,写一段内容进去,来标识不同的用户。如果下次用户再访问这个网页的时候,它又能够读出这个文件里面的内容...
PHP的Cookie技术介绍 主要介绍PHP中Cookie的使用
浏览器接收到来自服务器的Cookie数据之后默认将其保存在浏览器缓存中(如果浏览器关闭,缓存消失,Cookie数据消失),只要浏览器不关闭,当我们下一次发送“特定”请求的时候,浏览器负责将Cookie数据发送给WEB...
Cookie技术应用实例,可以实现资源共享,很好用的。
在我负责的一个项目中,为了实现一个特殊的需求,要求在客户端的Cookie中长久保存一份数据,但是我们知道在客户端Cookie里保存数据是不稳 定的,因为...在尝试了许多方法之后,我们最后选择使用FlashCookie技术来做。
jquery实现cookie技术 很好 很漂亮 很好用
这是用servlet编写的网页,需要与数据库的的连接,数据库很简单,大家可以自己编写。最重要的就是使用Cookie技术,保存登录信息。里面用到的服务器是Tomcat。
利用cookie淘宝店铺详情页面跳转做淘宝客,谨慎使用
用户登录成功后,将用户名和密码加密后保存了在Cookie当中,以后用户登录的时候,不用输入用户名和密码,可以直接进行登录;前提是,不能禁用浏览器的Cookie
F5基于syn cookie技术防护DOS攻击
这是我见过的讲cookie讲得最好的课程了,对cookie不太了解的朋友可以拿去,从此不再对cookie陌生。
用户登录功能(cookie实现),user用户信息表中读取信息,并进行判断,利用cookie实现。
项目名称:Cookie版人员管理系统。 使用技术:servlet+jsp+mysql+Cookie技术
以cookie方式获得上次访问时间,以及删除访问时间。
用Cookie实现 三天免登录,以及session登录练习使用解决null显示问题
使用PHP制作 简易员工管理系统之八(使用COOKIE保存用户登陆id以及显示用户登录时间)
jquery cookie插件,调用简单方便。
vs2005环境下,压缩包里包括Web和winform2种。为实现cookie技术提供一定的参考价值!
' 下面的这些可以不使用 objCookieObject.Domain = "www.asp888.net" objCookieObject.Path = "/path/" objCookieObject.Secure = True Response.AppendCookie(objCookieObject) End Sub Sub btnRemoveCookie_...
专业的判断用户名或密码自动登录采用cookie技术 大家共享! 专业的cookie使用!自动登录判断 专业的cookie使用!自动登录判断 专业的cookie使用!自动登录判断