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

最新文章

  1. Centos配置查看
  2. linux 系统下查看raid信息,以及磁盘信息
  3. 第八篇 SQL Server安全数据加密
  4. Oracle中*.dpm文件导入
  5. C#中如何获取系统环境变量等
  6. .Net SSRS(rdlc) 报表经验总结
  7. jquery倒计时过几秒页面跳转 js倒计时
  8. Java的类加载器
  9. Mysql基本命令二
  10. freemark使用总结
  11. Linux裸设备管理详解--
  12. vmware 进入虚拟机VMware的系统后鼠标不能点
  13. 用Vue实现状态列表的操作涵盖所有的知识点
  14. P3403 跳楼机
  15. Hibernate Generic DAO的介绍安装和使用
  16. IOS开发 REST请求 ASIHTTPRequest用法
  17. java concurrency
  18. webpack4+Vue搭建自己的Vue-cli
  19. Linux route
  20. Uva-oj Palindromes 暴力

热门文章

  1. DJango小总结二
  2. 移动Web布局
  3. sublime text 3 添加代码片段
  4. Java设计模式—策略模式
  5. 【Linux】unix/Linux常用命令英文全称
  6. LeAndroid招聘汇总
  7. Browser进程和浏览器内核(Renderer进程)的通信过程
  8. codefind.pl
  9. OC 结构体
  10. swift的特性:扩展、协议、泛型