什么是浏览器指纹?

    浏览器指纹是指仅通过浏览器的各种信息,如系统字体、屏幕分辨率、浏览器插件,无需 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

java 解析浏览器指纹判断浏览器类型 浏览器指纹识别技术_Windows

 

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);
    }

用谷歌浏览器请求,结果一样

java 解析浏览器指纹判断浏览器类型 浏览器指纹识别技术_浏览器插件_02

 

 使用postman请求,

java 解析浏览器指纹判断浏览器类型 浏览器指纹识别技术_服务器_03

 

 

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:呈现引擎


 

写博客是为了让别人能明白,之后在是自己明白. 如果有不明白的地方欢迎 讨论