你脱了马甲我也认识你--浏览器指纹
因为前段时间搜索相机比较多,验证一下某东的首页推荐
登录状态下推荐的相机、镜头。
同浏览器镜头减少了,下面的相机还在。
换了个浏览器未登录,则完全与之前推荐无关了。
虚拟机的未登录状态,同第3步,也完全与之前推荐无关了。
原来一直幻想的以为,挂代理,不登录,开隐私模式,那我访问视频或者资讯网站的时候,它应该不太会分析出我的喜好,就不好给我使用推荐算法吧。推荐算法这个玩意太恶心了,你在给你推的某个视频里面多停留一会,或者重复播放一次,你大概率不久会再次收到类似的视频,然后你就会持续看到你喜欢看的东西,周而复始,把你放在一个信息茧房中,视野会越来越窄。某个时间忽然某个内容火了,莫名其妙的火了,换个角度想,也就是很多的人,在同一时间段收到同一个信息内容的推送,变成大家共同的话题,那么就算是定义为的火了。如果换成潜移默化的给你推荐影响你判断的内容呢,天天给你看佳能的缺点和索尼的优点,会不会增加你想“出佳为尼”的欲望,那么---如果涉及到大众投票选择呢?
什么是浏览器指纹?
通过分析用户浏览器及设备的特征信息来识别唯一用户的技术。将你的IP地址、操作系统、浏览器信息、时区、系统中安装的字体等等,单个看似都无关紧要的信息,集合在一起生成一个唯一的标识,这就是你的浏览器指纹。
当然每个技术的出现的好坏都取决于怎么用它,
坏的方面:比如上面的结合推荐算法给我感觉就是一个坏的用处,还有我们订票订酒店时常用的杀熟等。
好的方面:反欺诈,防止刷票、机器人、安全设备检测,比如修改一些用户信息的时候,有时候需要短信验证,有时候不需要,因为你的浏览器指纹是一样的,就可以跳过一些验证。
当然这个东西也是一步一步过来的
关于IP地址
最早我们用IP可以定义一个用户,打开浏览器访问网站时,本质上是你的浏览器通过一个IP地址和网站建立了通讯链路,服务器获取到你的IP还是同一个IP,就可以简单判定为你是同一个人。为了安全服务器可以限制只承认某个IP的用户登录。
只是这个IP是可以通过代理更换的
关于Cookie
问题来了,你的公司或者你的家里所有的人在同一个路由器上,你们的IP是一样的,这时候无法区别到每一个人。如果网站还想进一步知道访问者是谁?以前有没有访问过本网站?都访问了哪些内容?为了获得这些进一步的信息, 网站就要用到Cookie技术了。
当打开浏览器访问网站时,网站会让你的浏览器存储一些很简单的数据,并可以控制这些数据的存储时长。 更关键的是,当浏览器再次访问该网站的时候,网站还可以把浏览器存储的数据读取出来——这就很可怕了,这意味着只要Cookie不被清除, 网站完全可以跟踪你的一举一动。
浏览国外的大部分网站的时候,都会有关于cookie让你选择的弹窗。为什么呢,因为为了保护隐私,他们搞了个保护规范。
欧盟在2016年4月27日推出的GDPR,全称General Data Protection Regulation,翻译为《一般数据保护条例》。规定除绝对必要的Cookie外,使用任何Cookie之前均需征得用户同意,并且还有提供Cookie的解释。以及即便用户拒绝使用某些Cookie,也要允许访问网站。
不遵守真的会被罚钱的!
关于浏览器指纹
IP会被代理,cookie又不让干,那我怎么知道用户是这个用户呢。
也不知道是不是罚怕了,这些个技术公司就搞了这么一个方法,把你的IP地址,您使用的操作系统(比如Windows或macOS)、屏幕分辨率、甚至您安装了哪些字体等等。这些看似无关紧要的信息,打包到一起,然后转化成一个唯一的标识符,这样你怎么变化我都还能判断,你如何挂代理IP变了,我还可以自定义选择不加入IP进行打包生成标识符。
指纹识别的具体步骤是:
- 用户通过浏览器向网站发起访问请求;
- 网站响应用户的请求,并将html,css和js等文件发送到客户端;
- 浏览器解析网站发送到客户端的html文件;
- 由于html文件中链接了指纹收集脚本js文件,浏览器加载并解析该js文件;
- 而在浏览器完成解析js文件后,立即将该浏览器实例的指纹特征值传递到服务器端;
- 在数据库的指纹集中查询该指纹特征并进行匹配;
- 如果成功匹配到指纹集中的某项浏览器实例,则在该浏览器实例对应的行为特征中持续添加用户行为
- 如果没有成功匹配到指纹集,则认为该指纹属于新的浏览器实例,则在指纹集中插入新实例的ID与指纹,并通过步骤
- 记录用户行为特征.
FingerprintJS
FingerprintJS 是一个用于生成浏览器指纹的开源 JavaScript 库,旨在通过收集用户浏览器的各种特征信息来唯一标识用户。
FingerprintJS 会收集浏览器的多种特征信息,包括但不限于:
- 浏览器类型和版本
- 操作系统信息
- 屏幕分辨率
- 可用的字体
- 安装的插件和扩展
- 语言设置
- 时区偏移量
- 本地存储和会话存储的支持情况
收集到的特征信息会被转换成一个字符串,这个字符串的组成是通过将各个特征的值连接起来形成的。
最终,这个字符串会通过哈希算法进行处理,生成一个唯一的指纹标识符。这个指纹在不同的浏览器会有不同的值,即使在隐私模式下也能保持一致性。
当然还会有一些更高级一点的组合,登录+cookie+浏览器指纹联合使用。
我真的要安全,那怎么弄---反浏览器指纹
-
禁用 Cookie嘛,要是可以你把js也禁了都行,当然你要能接受不太友好的网站使用体验
-
浏览器的隐私模式,能防,但是效果不一定有那么好。
-
用指纹浏览器,一些号称安全的浏览器,如tor 浏览器。