如何获取用户访问过哪些网站
如何获取用户历史访问过的网站在分析用户使用习惯或者使用环境等都起来很重要的作用,比如说通过用户历史访问的网站类型,去划分用户。另外对于分析竞争对手的情况也能起到很好的作用。
用户的历史反问记录很大一部分存在了Cookie中,那么是否可以通过读取Cookie来获取用户的浏览记录呢?答案是否定的!那是否还有其他曲线救国的方案呢?
首先要介绍的是一个名为Css Hack的技术。这是在先前一篇文章 设置永远无法删除的Cookie中提到过。在大部分浏览器默认设置里,用户访问过的链接和没访问过的链接颜色是不同的:
用户曾访问过的链接,链接颜色默认为紫色紫色
用户未访问过的链接,链接颜色默认为蓝色蓝色
相关链接的颜色我们可以通过JS来获取CSS中A标签的伪类:visited伪类来获取颜色并辨别用户是否使用过某特定站点。由于此问题已经被各大浏览器厂商注意到,像Chrome、Safari 及Firefox已经对此漏洞进行了修复,目前此方案经测试尚可在IE浏览器上使用。
方案到此应该结束了,但是牛人们发现了另外一个方案:此方案来自于US BlackHat 2013的黑客会议上。相关话题为:PIXEL PERFECT TIMING ATTACKS WITH HTML5。讲的是使用HTML5中的requestAnimationFrame,根据浏览器渲染已访问过及未访问过的链接的时间差,判断指定链接是否访问过。
当浏览器渲染一个页面时,浏览器必须区分出某个链接是否曾访问过。每个浏览器都有一个记录访问过的链接的数据库,此时它要做的就是从这个数据库中查询指定的URL是否存在。
另外补充一个思路:通过请求http://www.example.com/favicon.ico 文件的载入时间的不同(如果访问过网站,则会调用缓存,响应会非常的快)来判断是否访问过某个网站。此方案未作测试。
另外寻找英文高手翻译此篇文章:PIXEL PERFECT TIMING ATTACKS WITH HTML5
参考文章:
http://krebsonsecurity.com/2010/12/what-you-should-know-about-history-sniffing/
http://jeremiahgrossman.blogspot.com/2006/08/i-know-where-youve-been.html
http://oldj.net/article/browser-history-sniffing/
建议继续学习:
- 解决IOS点击链接触发的颜色块 (阅读:3458)
- unix文件系统:链接与文件 (阅读:2775)
- 优雅地扩大链接响应区域 (阅读:2533)
- html中链接地址的重要性 (阅读:2430)
- Linux程序链接时-lpthread对程序正确性的影响 (阅读:2479)
- 链轮策略:LinkWheel (阅读:1784)
- 最应该规范设计的元素――链接 (阅读:1683)
- 浅议Wap网页设计中的锚点链接 (阅读:1618)
- Windows硬链接 软链接 符号链接 快捷方式 (阅读:946)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:标点符 来源: 标点符
- 标签: 链接
- 发布时间:2014-11-28 22:20:10
- [44] 界面设计速成
- [39] Oracle MTS模式下 进程地址与会话信
- [39] 视觉调整-设计师 vs. 逻辑
- [35] 如何拿下简短的域名
- [35] 程序员技术练级攻略
- [35] IOS安全–浅谈关于IOS加固的几种方法
- [33] 图书馆的世界纪录
- [33] android 开发入门
- [32] 【社会化设计】自我(self)部分――欢迎区
- [30] 读书笔记-壹百度:百度十年千倍的29条法则