什么是浏览器指纹?
浏览器指纹是指仅通过浏览器的各种信息,如系统字体、屏幕分辨率、浏览器插件,无需 cookie 等技术,就能近乎绝对定位一个用户,就算使用浏览器的隐私窗口模式,也无法匿名。这是一个被动的识别方式。也就是说,理论上你访问了某一个网站,那么这个网站就能识别到你,虽然不知道你是谁,但你有一个唯一的指纹,将来无论是广告投放、精准推送,还是其他一些关于隐私的事情,都非常方便。另外,不要迷信隐身模式,那个不行。而 Chrome 与 Firefox 扩展可以持续记录你的浏览器指纹,让你观察到一些变化.
指纹实现技术
1.一般指纹
①、Cookie
②、Session
③、Evercookie
④、Flash Cookies
2.基本指纹
基本指纹是任何浏览器都具有的特征标识,比如硬件类型(Apple)、操作系统(Mac OS)、用户代理(User agent)、系统字体、语言、屏幕分辨率、浏览器插件 (Flash, Silverlight, Java, etc)、浏览器扩展、浏览器设置 (Do-Not-Track, etc)、时区差(Browser GMT Offset)等众多信息,这些指纹信息“类似”人类的身高、年龄等,有很大的冲突概率,只能作为辅助识别。可以在该网址进行查看本地浏览器的基本特征
3.高级指纹
用法:
在没法条件的时候,可以尝试使用浏览器指纹作为验证码,如注册的时候服务端生成验证码.4.
常用:
常用ip地址+ user-gent作为浏览器指纹
谷歌浏览器:在地址栏输入 about:version
user-agent就是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器载体及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。而这些信息也足够我们去判断浏览器运行环境了
@ApiOperation("获取到当前客户端的代理")
@PostMapping("update/information")
public JsonData request(HttpServletRequest request) throws SocketException, UnknownHostException {
String user_agent=request.getHeader("User-Agent");
System.out.println(user_agent);
return JsonData.buildSuccess(user_agent);
}
用谷歌浏览器请求,结果一样
使用postman请求,
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36
解释:
Mozilla/5.0:网景公司浏览器的标识,由于互联网初期浏览器市场主要被网景公司占领,很多服务器被设置成仅响应含有标志为Mozilla
的浏览器的请求,
因此,新款的浏览器为了打入市场,不得不加上这个字段。
Windows NT 10 : Windows 10的标识符
Win64; x64 :
AppleWebKit/537.36:苹果公司开发的呈现引擎
KHTML:是Linux平台中Konqueror浏览器的呈现引擎KHTML
Geckeo:呈现引擎
写博客是为了让别人能明白,之后在是自己明白. 如果有不明白的地方欢迎 讨论