最近,有一种网络追踪的新技术正在困扰着我们许多从事跨境电商工作的商家,这种技术叫作浏览器指纹追踪技术,它可以使我们在账号多开的时候,把我们的账号关联起来,然后平台就会对此类账号进行封杀。
为什么我们叫他新技术呢,因为他用了现在网页前端的脚本语言JavaScript进行指纹绘制,也就是我们所熟知的js,那么浏览器指纹到底是什么呢,js又是如何收集浏览器指纹的呢,下面我就为大家一一介绍。
什么是浏览器指纹?
一般情况下,网站或者广告商都想要一种技术可以在网络上精确的定位到每一个个体,这样就可以通过收集这些个体的数据,然后加以分析之后更加精确的去推送广告和其他的一些活动。
Cookie技术是非常受欢迎的一种。当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中永久植入一个含有唯一标示符(UUID)的信息,并通过这个信息将用户所有行为关联起来。
而随着网民对个人隐私的重视,Cookie越来越不受待见。不少安全工具甚至是浏览器都开始允许或引导用户关闭Cookie功能,比如很多主流浏览器都有一个“隐私模式浏览”功能。
同时,我们可以很方便的使用浏览器的快捷键清除缓存,这样在两次访问的区间也就无法识别是否是同一个用户,这样一来,网站就很难追踪用户行为了。
这个时候浏览器指纹也就应运而生,什么是浏览器指纹呢?
浏览器指纹就是任何浏览器都具有的特征标识,比如硬件类型(Apple)、操作系统(MacOS)、用户代理(Useragent)、系统字体、语言、屏幕分辨率、浏览器插件(Flash,Silverlight,Java,etc)、浏览器扩展、浏览器设置(Do-Not-Track,etc)、时区差(BrowserGMTOffset)等众多信息,这些指纹信息“类似”人类的身高、年龄等,有很大的冲突概率,只能作为辅助识别。
Js如何收集指纹浏览器?
(1)javascript方式:首先我们新建一个fingerprint.js文件拷贝到项目中,接着调用方法varfingerprint=newFingerprint().get();
(2)如果我们要使用CanvasFingerPrinting,则调用:varfingerprint=newFingerprint({canvas:true}).get();
(3)如果我们想使用屏幕分辨率计算指纹,则需如下调用:varfingerprint=newFingerprint({screen_resolution:true}).get();
(4)如果我们要使用自定义的哈希函数则有两种方法:
1、varmy_hasher=newfunction(value,seed){returnvalue.length%seed;};
2、varfingerprint=newFingerprint({hasher:my_hasher}).get();
或者直接传递方法:
3、varmy_hasher=newfunction(value,seed){returnvalue.length%seed;};
4、varfingerprint=newFingerprint(my_hasher).get();
综上,我们可以耦合出一整套完整的代码:
scripttype="text/javascript"
if(window.requestIdleCallback){
requestIdleCallback(function(){
newFingerprint2().get(function(result,