可怕的“浏览器指纹”,让你在互联网上,无处可藏

时间: 2020-01-02阅读: 405标签: 浏览器
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。

你是一个好色之徒。

别问我怎么知道的,我了解你,虽然我不知道你是谁。

科技公司通过大数据,会对你进行一个大体的画像,然后按照你的喜好推送信息。比如一些精准的广告,刺激你荷尔蒙的小视频等。就拿你在玩的抖音来说,你其实可以匿名使用。你爱抖胸妹子的喜好,不会因为重装抖音而消失,它已熟知了你的癖好。

对于我这种故事多多的人,有些羞羞的隐私存在于除了我大脑之外的地方,真真的感觉如芒在背。所幸我有点编程基础。要是有点计算机基础,肯定会关掉cookie,让浏览器什么都记录不了;有点危机感的同学会启动常见的“隐身模式”,来隐藏映在屏幕上的奸笑;有点手段的,开了层层代理,心安理得的想要做一枚匿名侠客。

这些都没什么bird用。

我们处在第三代浏览器指纹的追踪中,事情远比想象中的复杂。当你访问一些特定的网站,就会被“被动的识别”,这些识别信息,就像是你的指纹一样,几乎绝对的定位一个个体,精准程度你无法想象。

做爬虫的,容易进局子。而收集隐私的,现在还没人管得了。

为什么要做这种东西?肯定都和利益相关。我很久之前就说过:样本组成了整体,个例装裱了样本。这些数据被收集之后,会有全局方面的分析,以及个体方面的应用。

在利益的驱使下,业务会变得复杂,哪怕它一开始就是不道德的。

你开了网站,做了App,用户像做公交车一样来去。并不是只有注册用户有价值,分析普通访客的行为,会产生更多“价值”。

说白了就两点:推送信息+追踪攻击。

我们想象一下一个旅游网站对于用户的追踪。一个匿名用户访问了旅游网站,查询了拉萨的旅游信息,并看了很多攻略。系统分析这个用户可能比较喜欢穷游,还喜欢徒步。过了很久,久到本地访问记录早已经消失,这个用户的爱人,使用同一台机器注册了旅游网站的账户,她想要去西双版纳。当她登陆后,却接连收到了几条西藏拼团旅游的推送。

也就是说,你用同一个浏览器,处于匿名状态浏览了情趣用品。一旦你N天后登录了,网站也知道是你。

我们再来想象一下一个小白的黑客之旅。他对前公司充满了怨恨,打算通过一些网站的漏洞进行暴力攻击。通过重重代理、肉鸡,甚至从国外转了几圈,他把流量打了出去。但是,由于他之前使用了自己的浏览器访问过公司页面,后台一眼就认出了他。

到底是何方神圣,能够像捉鬼一样捉到李逵?

不要还停留在cookie小蛋糕的层面。这种方式已经非常弱后,很多优化软件、浏览器上来就把这玩意给禁了。这种存放在本地的信息也并不是为了用户着想,XSS也能对Cookie进行窃取和欺骗。

怎么办?


(图片来源于论文: (Cross-)Browser Fingerprinting via OS and Hardware Level Features)

眼光落在了万能的js上。这种浏览器解释的脚本,能够获取很多信息,包括:操作系统、分辨率、像素比、安装的浏览器插件等。将这些信息收集后,就可以大体识别出一个用户。

这种方式不是很准确,尤其是对于我这种电脑上装了七八个不同版本的浏览器的用户来说。但是并不是每个互联网的使用者都像我一样无聊,所以精准程度还是可以接受。

更进一步,会用到canvas指纹。canvas(画布)是HTML5中一种动态绘图的标签,你看到的一些MG动画的效果,它都能做到。但是,这个东西在不同的浏览器上,产生的内容并不完全相同。

你可能以为Canvas画的是矢量图,放多大倍数都不失真的那种,那你可真是高看它们了。在像素级别看来,由于操作系统不同的设置、算法,在进行渲染操作和抗锯齿上,都不相同。它们可能都在背后,默默的出卖了你。

你可以到这个网址看一下你的Signature。

https://browserleaks.com/canvas

如果你觉得识别方式只有在视觉上做了文章,那这次你又低看它们了。

万能的js,也能够操作原始的音频,这个就是AudioContext。不过,它的原理和图像处理一样,都是根据不同的硬件、操作系统,不同的浏览器能够产生不同的结果。相同的浏览器产生相同的信息。

这些动作,默默的在后台发生,用户根本毫无觉察。

你的每一次点击,都无情的出卖了你。这些信息会被综合分析。相关网站和部门,能够对你进行唯一性识别,进而锁定、追踪。

你虽然没有注册账号,平台却为你分配了身份。

这是识别方式,用于识别你这个个体。而收集的内容,可能更让人瞠目结舌。不要觉得垃圾数据多,存不下。行为数据比那些廉价的磁盘,值钱的多。

包括你的每一次点击,停留的时长,阅读、观看的位置,都在全方位的展示你的个体。设备、IP、位置、操作习惯,都在不同的角度绘制你的指纹,让你在匿名的互联网上,无处可藏。

作者简介:小姐姐味道 (xjjdog),一个不允许程序员走弯路的公众号。聚焦基础架构和Linux。十年架构,日百亿流量,与你探讨高并发世界,给你不一样的味道。我的个人微信xjjdog0,欢迎添加好友,​进一步交流。​
站长推荐

1.阿里云: 本站目前使用的是阿里云主机,安全/可靠/稳定。点击领取2000元代金券、了解最新阿里云产品的各种优惠活动点击进入

2.腾讯云: 提供云服务器、云数据库、云存储、视频与CDN、域名等服务。腾讯云各类产品的最新活动,优惠券领取点击进入

3.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/7133

html5的pushstate以及监听浏览器返回事件

实际开发我们在A页面调用组件,在组件里面填好内容之后,发现想退出不想填了,因为组件与A页面此时在同一页面,点击返回时候 给人感觉是返回上上个页面,但之前A页面填写的东西 都没有了,这很影响体验。

主流浏览器对ES6的支持情况

现在使用的js语法,基本是ES5的规范 ,15年出的ES6的规范增加了很多其他语法,要看浏览器的支持情况,如果浏览器不支持那么就会报错,ES6 块级作用域 关键字let, 常量const,对象字面量的属性赋值简写,赋值解构,函数参数

用JavaScript让你的浏览器说话

最近在开发一个个人项目时,我冒出了一个尝试让浏览器说话的想法。不知道该怎么做,于是,我在网上寻找了一下答案,在MDN上,我找到了答案。让我们来看看如何通过JavaScript让浏览器说话。

javascript判断浏览器类型与版本

除了另无它法,肯定不使用navigator.userAgent来判定浏览器。因为在第一次浏览器大战初期,Netscape占绝对统计地位,大部分人们不愿意兼容其他浏览器,并通过检测其UA让他们的网站只允许Netscape访问

浏览器中实现JavaScript计时器的4种创新方式

由于 Web Worker 本质上是Web线程,因此你可以在其中无限循环而不阻塞主线程。这使你可以访问微秒级的时间分辨率。这对于在 Worker 中做出时间关键的决策是特别实用的,可以让主线程准确的知道什么时候合适

浏览器执行js原理

是不是大都数前端开发者都会有这样的疑惑,确实,我自己在开发的过程中每次碰到promise,setTimeout,requestAnimationFrame都会去想,在这个执行的过程中到底发生了什么?

js禁止浏览器保存用户密码

在HTML中,除了要用的密码框以外,额外添加一个密码框,设置为隐藏,注意:添加的用来干扰的密码框,必须在有用的密码框的上面,上面任何地方都行,就是不要在下面。

JavaScript判断浏览器内核,微信打开自动提示在浏览器打开

微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器。网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下。我们今天只讨论通过 JavaScript 判断是否在微信浏览器中打开,如果是则弹出提示,在浏览器中打开

浏览器是多进程还是单进程?

浏览器是多进程的,浏览器每一个 tab 标签都代表一个独立的进程(也不一定,因为多个空白 tab 标签会合并成一个进程),浏览器内核(浏览器渲染进程)属于浏览器多进程中的一种。

浏览器storage你真的会用吗

html5标准localstorage和sessionStorage 为现代浏览器提供用户会话级别的数据存取。它们允许你访问一个Document 源(origin)的对象 Storage,也就是在遵守同源策略情况下存取数据。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全运营推广