1. Evercookie

Evercookie是一个Javascript API,可以在浏览器中生成极其持久的cookie。 它的目标是在客户删除标准cookie,Flash cookie(本地共享对象或LSO)等之后识别客户端。

2. 实现原理

Evercookie是通过将cookie数据存储在尽可能多的浏览器存储机制上来实现的。 如果从任何存储机制中删除cookie数据,只要一个仍然完好无损,evercookie就会在每个机制中积极地重新创建它。

如果Flash LSO,Silverlight或Java机制可用,Evercookie甚至可以在同一客户机上的不同浏览器之间传播cookie!

3. 浏览器存储机制

客户端浏览器必须支持尽可能多的以下存储机制才能使Evercookie有效:

a. Standard HTTP Cookies
b. Flash Local Shared Objects
c. Silverlight Isolated Storage
d. CSS History Knocking
e. Storing cookies in HTTP ETags (Backend server required)
f. Storing cookies in Web cache (Backend server required)
g. HTTP Strict Transport Security (HSTS) Pinning (works in Incognito mode)
h. window.name caching
i. Internet Explorer userData storage
j. HTML5 Session Storage
k. HTML5 Local Storage
l. HTML5 Global Storage
m. HTML5 Database Storage via SQLite
n. HTML5 Canvas - Cookie values stored in RGB data of auto-generated, force-cached PNG images (Backend server required)
o. HTML5 IndexedDB
p. Java JNLP PersistenceService
q. Java exploit CVE-2013-0422 - Attempts to escape the applet sandbox and write cookie data directly to the user’s hard drive.

4. 后端服务器

某些存储机制需要后端服务器。 该软件包附带了etag,cache和png后端服务器的PHP实现。

5. 缺点或注意事项

a. CSS历史记录首次设置cookie时,可能会导致大量HTTP请求。
b. 一些存储机制涉及在客户端浏览器中加载Silverlight或Flash。 在某些机器上,这可能是一个非常缓慢的过程,会严重影响性能。 在较旧的移动设备上,这可能会使您的网站无法使用.
c. 浏览器供应商正在尽最大努力填补Evercookie利用的许多漏洞。 这对互联网来说是一件好事,但这意味着今天有效的方法明天可能效果不佳。

参考资料: https://github.com/samyk/evercookie

Evercookie的更多相关文章

  1. 前端持久化--evercookie

    引言: 前端持久化就是要将数据永久的保存在前端,让数据难以删除或者删除后能够重新恢复.存储的数据可以理解为是一种 “僵尸数据”,下面介绍一种前端持久化方法 -- evercookie. 一.everc ...

  2. cookie窃取和session劫持

    Updates 2014-08-17 感谢@搞前端的crosser的提醒,加入了HTTP Response Splitting的内容. 此篇文章的Presentation戳这里. 一.cookie的基 ...

  3. 浏览器cookie数

    <?php for ($w=0; $w < 200 ; $w++) { setcookie('name'.$w,'value'.$w, time()+3600*10 ); } var_du ...

  4. laravel小抄

    原文地址:http://cheats.jesse-obrien.ca/ Artisan // Displays help for a given command php artisan --help ...

  5. Laravel Cheat 表 http://cheats.jesse-obrien.ca/#

    Laravel Cheat Sheet Toggle Code Comments PDF Version Github Laravel 3 Docs Laravel 4 Docs Artisan ph ...

  6. [转]取代cookie的网站追踪技术:”帆布指纹识别”初探

    [前言] 一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动.C ...

  7. 笔记整理--Http-Cookie

    如何设置一个永远无法删除的Cookie -- 系统架构 -- IT技术博客大学习 -- 共学习 共进步! - Google Chrome (2013/6/20 9:46:38) 如何设置一个永远无法删 ...

  8. 浏览器存储(cookie、localStorage、sessionStorage)

    互联网早期浏览器是没有状态维护,这个就导致一个问题就是服务器不知道浏览器的状态,无法判断是否是同一个浏览器.这样用户登录.购物车功能都无法实现,Lou Montulli在1994年引入到web中最终纳 ...

  9. web API简介(二):客户端储存之document.cookie API

    概述 前篇:web API简介(一):API,Ajax和Fetch 客户端储存从某一方面来说和动态网站差不多.动态网站是用服务端来储存数据,而客户端储存是用客户端来储存数据.document.cook ...

随机推荐

  1. c#中日期的处理

    DateTime.Now.ToShortDateString()//只取日期DateTime.Now.ToLongTimeString();//只取时间搞定DateTime.Now.ToShortTi ...

  2. Git和GitHub在线学习资源整理(转)

    原文地址:http://blog.csdn.net/duqi_2009/article/details/12646711 电子书 GotGitHub Git Workflow 文章 GitHub Fu ...

  3. oracle学习篇七:更新操作、事务处理

    ----------------1.数据库更新操作----------------------------- select * from tab;--查询表 drop table siebel_use ...

  4. 引爆你的Javascript代码进化 (转)

    转自 海玉的博客 方才在程序里看到一段JS代码,写法极为高明,私心想着若是其按照规范来写,定可培养对这门语言的理解,对JS编程能力提高必是极好的.说人话:丫代码写的太乱,看的窝火! 最近闲暇无事,准备 ...

  5. 9th week -the history of program 1950~2020

    We already know that programming language is a formal language designed to communicate instructions ...

  6. 在windows环境下运行compass文件出现的错误提示解决方案

    在windows环境下运行compass文件出现的错误提示解决方案 例如:经常在项目中运行grunt命令编译scss文件的时候,会出现下面的错误提示 (Encoding::CompatibilityE ...

  7. 【Linux】Linux 找回Root用户密码

    Root密码破解 Linux 忘记Root密码 ? 技术学习基本原则:不作恶 一.破解步骤 1.在系统启动时进入grub选项菜单 2.在grub选项菜单按e进入编辑模式 3.编辑kernel那行添加/ ...

  8. requireJS的优化工具 ---- r.js

    requireJS是javascript的模块加载器,是基于AMD规范实现的. r.js是其提供的对模块进行打包和构建的一个工具 下载 r.js 创建r.js 的配置文件 build.js build ...

  9. 文件上传fileupload文件接收

    form表单提交数据到servlet后,使用fileupload进行接收. fileupload 是由 apache 的 commons 组件提供的上传组件.它最主要的工作就是帮我们解析 reques ...

  10. ICONIX Process

    1.像rup,iconix是用例驱动的但是比rup更轻量级.  iconix 仅仅使用四种diagram(用例图.健壮性图.时序图.类图)就可以把用例文本转成代码. 2.值得注意的健壮性分析图并不是u ...