evercookie原理及使用方法示例

描述:

evercookie是一个可用的JavaScript API 浏览器中非常持久的cookie。它的目标 是在客户删除标准后识别客户 Cookie,Flash Cookie(本地共享对象或LSO),以及其他。

evercookie通过存储cookie数据来实现这一目标 可用的几种类型的存储机制 本地浏览器。此外,如果evercookie找到了 用户已删除任何类型的cookie,它 使用每种可用机制重新创建它们。

具体来说,在创建新cookie时,它会使用 以下存储机制:

- Standard HTTP Cookies
- Local Shared Objects (Flash Cookies)
- Silverlight Isolated Storage
- Storing cookies in RGB values of auto-generated, force-cached
PNGs using HTML5 Canvas tag to read pixels (cookies) back out  
(需要后端服务器)
- Storing cookies in and reading out Web History
- Storing cookies in HTTP ETags 
(需要后端 服务器)
- Storing cookies in Web cache  (需要后端服务器)
- window.name caching
- Internet Explorer userData storage
- HTML5 Session Storage
- HTML5 Local Storage
- HTML5 Global Storage
- HTML5 Database Storage via SQLite

Evercookie旨在使持久性数据持久化。通过将相同的数据存储在客户端可以访问的多个位置,如果任何数据都会丢失(例如,通过清除cookie),数据可以恢复,然后重置和重用。简单地把它想象成不会消失的cookie.
如果用户删除了他们的cookie,只需要一个cookie来保留下来,
evercookie就会在每个机制中积极地重新创建它。如果用户在一个浏览器上进行浏览并切换到另一个浏览器,只要它们仍然具有本地共享对象cookie,即cookie将在两个浏览器中重现。
客户端是否必须安装任何东西?客户只是在不知道的情况下使用网站正在设置持久性数据,就像他们使用标准网站一样HTTP cookie。

后端服务器:

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

git地址:https://github.com/samyk/evercookie

破解方法:
就是删除历史记录后,一定不能在原窗口内刷新页面。一定要关闭当前窗口tab。然后新开tab里面,再次访问对应的evercookie,就可以看到并不能恢复cookie值了。这就是由window.name这个特殊的技术点,所决定的。

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

缺点和注意事项:

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

  • 某些存储机制涉及在客户端浏览器中加载Silverlight或Flash。在某些机器上,这可能是一个非常缓慢的过程,有很多磁盘抖动。在较旧的移动设备上,这可能会使您的网站无法使用。

  • CSS历史记录首次设置cookie时,敲门可能会导致大量HTTP请求。

  • 在某些圈子里,使用Evercookie被认为是粗鲁的。在生产中使用Evercookie时,请考虑您的声誉和受众。

  • 浏览器供应商正在尽最大努力填补Evercookie利用的许多漏洞。这对互联网来说是一件好事,但它意味着今天有效的东西明天可能效果不好。

您自己决定使用Evercookie。做出明智的选择。

使用示例:


    
        我的网页
        
        
        
    
    
        
        
    

 

 

 

你可能感兴趣的:(evercookie原理及使用方法示例)