User-Agent,直译就是用户代理,简写为UA。是浏览器访问某网站在请求头部加入的一段标识。用来告诉目标网站,此浏览器运行在什么版本的系统、CPU型号、浏览器内核版本等。

以我当前所使用电脑的UA来看
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
这就泄露了我目前所用电脑的系统是win10且是64位的,所用的浏览器是Chrome是79版本。可以在这里查询Chrome的更新日志,发现此版本是Tuesday, December 17, 2019发布,得出我对浏览器的更新态度是怎样的等等。
当然,本篇文章的用途并不是为了让访客了解到以上关于我的信息。而是以下的拓展点。。


  • 大平台可以利用UA来标识用户身份并推送广告
    1. 例如百度站长统计后台会辨识网站用户的年龄、性别等等,则不仅仅是通过IP单一识别。因为在很多时候访客并没有公网IP。假如有一卖某产品的网站接入了百度统计,然后你对该产品非常感兴趣,百度就GET到了这一点,在下一个有接入百度广告的地方给你推荐这一商品同类型的其他商品。。(也许并不是这么简单的识别,起码是一个合理的猜测)
    2. 例如你的UA包含有HUAWEI字样,则可以变成平台对你用户画像的一部分。例如华为出新品以后会给你更多的展示次数等。
  • 站长可以通过UA来识别用户
    1. 非人类用户
      包括网络搜索引擎爬虫,程序语言,或者其他。 假如一个用户的UA中含有以下 “curl”、“requests”、“python”、“php”、“java”、“urllib”、“Java”、“Ruby”、“Go-http-client"等字样,则可以判断为非人类用户。如果对网站产生大量访问加重了服务器负担的话,我们就可以通过技术手段ban了这类。如果我们写爬虫或者批量程序的话,肯定是要避免UA中有这些敏感字段
    2. 恶意访问用户
      假如我们的网站含有一个严重的漏洞。一个偶然的情况下,被‘小黑’发现了,他正在兴奋的利用此漏洞做不可告人的事。这事被我们的网站管理员发现了,立马ban了他的IP。小黑同时了发现了此时访问不了我们的网站了,所以他换了一个IP继续做不可告人的事。但是我们还是可以通过UA来发现,此小黑就是彼小黑。这也就告诉我们了一个道理,浏览器的隐私窗口仅仅是对我们本地起到了隐私作用
  • 通过UA来识别攻击行为
    从网络攻击者的角度来看,批量自动化已经成为未来趋势。而此类行为多利用开源程序,或者自写脚本。正如上条中的那样,UA中包含有程序语言的字样,大概率已经决定了“他不是一个好人”,则可以进一步观察该用户的其他访问行为是否带有攻击性。再比如,某一天查到访问日志中出现了"antsword"字样,则表明你的服务器可能已经成为了木马的温床。(当然,UA是可以更改的,识别攻击行为主要还是通过用户的“行为”。)

最后,一些工具:

UA收集 https://user-agents.net/
UA分析 http://tool.i5.gs/?url=ua
识别真假爬虫的方式 PTR解析记录理解与用途
浏览器指纹 https://browserleaks.com/canvass