evercookie 保存浏览器缓存

欢迎大家访问我的博客 blog.ayla1688.cool


Evercookie



Evercookie是一种Javascript API,可在浏览器中生成非常持久的cookie。 它的目标是即使删除了标准Cookie,Flash Cookie(本地共享对象或LSO)和其他Cookie,也可以识别客户端。

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

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

 

浏览器存储机制



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

  1. 标准HTTP Cookie
  2. Flash本地共享对象
  3. Silverlight隔离存储
  4. CSS历史敲门
  5. 在HTTP ETag中存储cookie(需要后端服务器)
  6. 将cookie存储在Web缓存中(需要后端服务器)
  7. HTTP严格传输安全性(HSTS)固定(在隐身模式下工作)
  8. window.name缓存
  9. Internet Explorer用户数据存储
  10. HTML5会话存储
  11. HTML5本地存储
  12. HTML5全球存储
  13. 通过SQLite的HTML5数据库存储
  14. HTML5 Canvas-自动生成的,强制缓存的PNG图像的RGB数据中存储的Cookie值(需要后端服务器)
  15. HTML5 IndexedDB
  16. Java JNLP PersistenceService
  17. Java利用CVE-2013-0422-尝试转出applet沙箱并将cookie数据直接写入用户的硬盘驱动器。

 

要在某天实施(也许由您执行):

  1. TLS会话恢复标识符/票证(在隐身模式下工作)
  2. 每位用户生成HTTP公钥固定(HPKP)证书
  3. HTTP身份验证中的缓存
  4. Google Gears
  5. 使用Java产生基于NIC信息的唯一密钥
  6. 其他方法?请评论!
  7. Java持久性机制由Gabriel Bauman在此处开发和维护。

 

 

后端服务器



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

  1. 对于Node.js版本,请访问node-evercookie。
  2. 对于Django版本,请访问Django Evercookie

 

注意事项



被警告! Evercookie可能会给您或您的用户带来问题。

  1. 一些存储机制涉及在客户端浏览器中加载Silverlight或Flash。在某些计算机上,这可能是一个非常缓慢的过程,并且磁盘抖动很多。在较旧的移动设备上,这会使您的网站无法使用。
  2. 首次设置Cookie时,CSS历史记录的敲除会导致大量HTTP请求。
  3. 在某些圈子中,使用Evercookie被认为是不礼貌的。在生产中使用Evercookie时,请考虑您的声誉和受众。
  4. 浏览器供应商正在尽最大努力来弥补Evercookie所利用的许多漏洞。对于Internet来说这是一件好事,但这意味着今天可以使用的东西明天可能无法很好地使用。

 

github连接:https://github.com/samyk/evercookie

有兴趣的同学可以去研究一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值