刚接触evercookie 感觉有点无从下手,虽然有例子。
首先:先熟悉evercookie.js 看了这个js 应该就可以知道个大概了
一、 简介
Evercookie是一个用于向网站标识用户行为的Java Script。Evercookie故名思义可以让Cookie存储在非Cookie目录,例如FlashCookies和HTML5Storage。它的意义在于可以让网站能跟踪用户的上网习惯,即使用户清空了个人目录,它仍旧不会消失。
一个很好的例子:evercookie,一个由Samy Kamkar开发的开源JavaScriptAPI http://www.open-open.com/ajax/ajax20100930092911.htm。当被网站使用时,evercookie保存user ID和cookiedata至不只是两个或三个地方,而是八个不同的地方——以后还会更多!其中就有你的standard HTTP cookies,Flash cookies,你强制缓存的PNG的RGB值,你的Webhistory以及一些HTML5存储特性。此外,Silverlight Storage 和 Java显然也在跟近。
因此当你删掉一处、三处或五处的cookie时,evercookie可以从其他cookie源获取你的user ID,并恢复数据跟踪cookie。它还跨浏览器——如果Local Shared Object cookie(本地共享对象cookie)完整,evercookie可以传播到任何你在本机上使用的浏览器。由于在、大多数用户对这些cookie保存技术不甚了解,他们不大可能彻底清除某一cookie。
“简单把它想象成不会摆脱的cookie(Cookie僵尸)吧。
二、 特点
1. 尽量将Cookies持久化在浏览器中
2. 当用户删除标准Cookies,Flash Cookies等之后还能识别客户端。evercookie采用在本地浏览器中可用的各种不同存储机制来存储cookie数据。当evercookie发现用某种机制存储的cookie被数据将删除之后,它将利用其它机制创建的cookie数据来重新创建,让用户几乎不可能删除cookie
三、 当前evercookie支持的存储机制
1. 标准的http cookie
2. 本地共享对象(flash cookie)
3. 存储生成的rgb的值。使用html 5标签的png图像读取cookie
4. 网页记录
5. 利用 http Etag 存储cookie
6. Internet Explorer userData storage(用户数据存储)
7. Html 5 session storage(会话存储)
8. Html 5 Local storage(本地存储)
9. Html 5 global storage
10. Html 5 Database storage via SQLite
四、 主流浏览器中的存储情况
(一)各主流浏览器中:
1. IE、360、 firefox、 google、 safari、opera
userDatamechanism: 10(只有IE内核支持)
cookieData mechanism: 10
localData mechanism: 10
globalData mechanism: undefined(其他浏览器也取不到值)
sessionData mechanism: 10
windowData mechanism: 10
historyData mechanism: 10(只有opera浏览器取到值)
pngData mechanism: undefined
etagData mechanism: undefined
cacheData mechanism: undefined(以上这三项pngdata、etaData、cacheData需要php环境的支持)
lsoData mechanism: 10(需要有flash player 的支持)
slData mechanism:10(需要silverlight 环境的支持)
2. google、safari、opera 还有一种dbData mechanism
(二)环境:
1. Window
1.1 IE9 浏览器
支持的存储机制有:userData、cookieData、localData、sessionData、windowData、lsoData(flash cookie)、slData(silverlight cookie)
说明:(1)、userData 只有IE内核的才支持
(2)、flashcookie 和silverlight cookie 如果客户端没有环境,则无法存储和读取
(3)、由于IE8、IE9在清除历史记录的时候就可以把flash cookie清除。所以如果用户清除了历史记录的话,如果客户端有silverlight环境,则所剩的cookie还有两中:localData、slData
1.2 360 浏览器
支持的存储机制有:userData、cookieData、localData、sessionData、windowData、lsoData(flash cookie)、slData(silverlight cookie) 和IE9一样
说明:(1)、userData 只有IE内核的才支持
(2)、flashcookie 和silverlight cookie 如果客户端没有环境,则无法存储和读取
(3)、如果用户清除了历史记录的话,如果客户端有silverlight环境,则所剩的cookie还有:userData、cookieData 、localData lsoData 、slData
1.3 Firefox 15.1
支持的机制有:cookieData、localData、sessionData、windowData、lsoData、slData 和IE相比差了userData
说明:如果用户清除了历史记录的话,如果客户端有flash及silverlight环境,则所剩的cookie还有:lsoData 、slData
1.4 Google
支持的机制有:cookieData、localData、sessionData、windowData、dbData、lsoData、slData和IE相比差了userData;和IE、360、firefox比多了dbData
说明:由于google21在删除历史记录的时候可以把flashcookie 清除,如果用户清除了历史记录的话,如果客户端silverlight环境,则所剩的cookie还有:slData
1.5 Safari
支持的机制有:cookieData、localData、sessionData、windowData、dbData、lsoData、slData和google 支持的机制一致
说明:如果用户清除了历史记录的话,如果客户端有flash及silverlight环境,则所剩的cookie还有:cookieData 、localData 、dbData 、lsoData 、slData
1.6 Opera
支持的机制有:cookieData、localData、sessionData、windowData、dbData、lsoData、slData和safari 比多了historyData(但这个值是最初的值)
说明:如果用户清除了历史记录的话,如果客户端有flash及silverlight环境,则所剩的cookie还有:cookieData 、localData 、dbData 、historyData、lsoData 、slData
PS:
在以上各浏览器的隐私模式下都不能存储cookie
2. 苹果系统
2.1 Google
支持的机制有:cookieData、localData、sessionData、windowData、dbData、lsoData、slData
说明:由于google21在删除历史记录的时候可以把flashcookie 清除,如果用户清除了历史记录的话,如果客户端silverlight环境,则所剩的cookie还有:slData(和window系统上的一致)
2.2 Safari
支持的机制有:cookieData 、localData、sessionData windowData 、dbData、lsoData 、slData
说明:如果用户清除了历史记录的话,如果客户端有flash及silverlight环境,则所剩的cookie还有:cookieData 、localData 、dbData 、lsoData 、slData
附:
一、关于flash cookie
1.IE8、IE9在删除历史记录的时候会清空flash cookie
2.谷歌21 删除历史记录的时候会清空flash cookie
3. Flash Player 10.3之后,我们可以在控制面板中发现新增了一个Flash Player的设置选项,进入之后在存储标签中,就可以对本地存储的Flash Cookie进行操作。点击“站点的本地存储设置.. .”按钮,就可以查看目前电脑中的Flash Cookie
二、关于浏览器的隐私模式,下面以火狐的隐私模式作为例子说明。详见各浏览器中的说明
隐私浏览不会记录的内容
- 访问过的页面: 不会将任何您访问的页面添加到历史菜单的网站列表、Windows的历史列表或 智能地址栏 地址列表中。
- 表单和搜索栏: 您在页面上的文本框或 什么是搜索栏 中输入的任何东西不会被记录到 表单自动完成。
- 密码: 不会有新密码被保存下来。
- 下载列表: 当您打开隐私浏览后,您下载的文件不会在 下载管理器 中被列出。
- Cookies: Cookie 储存了您访问过的网站的信息,包括网站的首选项、登录状态以及Adobe Flash 所使用的数据。Cookies 可以被第三方使用,以跨站追踪您。想获取更多关于追踪的信息,请参考: 如何停止让网站追踪我?
注意:为了防止Flash 存储 Cookie,您必须使用最新版本的软件。参看更新 Flash。
- 缓存的Web内容 和 离线Web内容和用户数据:网页缓存文件(高速缓存)或网站为离线使用而存储的文件都不会被保存。
注意:
- 如果您在隐私浏览模式下创建了一个新的书签,在退出隐私浏览之后书签不会被删除。
- 如果使用隐私浏览模式期间您在您的计算机上保存了文件,当您停止隐私浏览时,文件不会被删除。然而,您在外部应用程序中打开的任何文件都会从系统的临时文件夹中被清除,您下载的任何文件都不会显示在 下载管理器 的列表中