You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JavaScript正确检测用户是否使用AVG浏览器?

原因说明
  • AVG浏览器的AVG/100.xxx标识是网络层追加内容:该标记会在浏览器向外发送HTTP请求时,被添加到请求头的User-Agent字段中,整个修改流程发生在网络栈层面,不会同步修改渲染进程暴露给页面上下文的UA值。
  • navigator.userAgent的返回值来自渲染进程初始化时的标准Chromium UA配置,AVG未修改这部分API的返回逻辑,因此前端JS调用该接口时,天然拿不到AVG相关字段,属于AVG本身的实现特性,不是代码逻辑错误。
  • 谷歌搜索或第三方UA检测站点展示的AVG标识,是站点服务端直接从收到的HTTP请求头中读取的,和前端JS通过页面API获取的UA来源不同,结果不一致是正常现象。
检测方案
  • 服务端检测:直接读取HTTP请求头的User-Agent字段,通过正则/AVG\/\d+/i匹配即可。服务端拿到的是网络层发出的完整请求头,包含AVG追加的标识,检测准确率最高。
  • 前端检测:放弃navigator.userAgent匹配逻辑,转而检测AVG渲染进程注入到页面上下文的专属全局对象,常见的标记对象包括window.AVG、window.avgSecureBrowser。
    参考实现代码:
    const isAVGBrowser = Boolean(window.AVG || window.avgSecureBrowser);
    
  • 不推荐方案:通过预装扩展特征、前端UA字符串匹配判断。前者用户可手动禁用扩展,后者前端无法拿到AVG追加的UA字段,两类方案误判率极高。
补充说明
  • 若用户仅安装了AVG安全防护插件、未使用AVG浏览器,HTTP请求头也可能被插件追加AVG标识。服务端检测如果需要严格区分「AVG浏览器」和「安装了AVG插件的其他浏览器」,需要结合更多特征交叉校验。
  • AVG版本迭代可能调整注入的全局对象名称,前端检测建议覆盖多个已知的专属属性,降低版本更新带来的检测失效概率。

内容的提问来源于stack exchange,提问作者Sir Lebasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 22:21:27