ByteNoteByteNote

字节笔记本

2026年2月19日

Bing Chat for All Browsers - 跨浏览器访问 Bing Chat 的开源扩展

本文介绍 Bing Chat for All Browsers,一个开源的浏览器扩展项目,它可以让 Chrome 和 Firefox 用户使用 Bing ChatGPT 功能。该项目通过修改 User-Agent 绕过微软对浏览器的限制,实现了跨浏览器访问 Bing Chat 的功能。

项目简介

Bing Chat for All Browsers 是一个由 anaclumos 开发的浏览器扩展,旨在打破微软对 Bing Chat 的浏览器限制。在 Bing Chat 刚推出时,微软仅允许 Microsoft Edge 浏览器访问该功能,而该扩展通过技术手段让 Chrome 和 Firefox 用户也能使用。

注意:该项目已于 2023 年 6 月 30 日被作者归档,目前处于只读状态。

核心特性

  • 跨浏览器支持:支持 Chrome 和 Firefox 浏览器
  • User-Agent 伪装:通过修改请求头中的 User-Agent 绕过浏览器检测
  • 移动端适配:同时支持桌面端和移动端 User-Agent 切换
  • 轻量级实现:核心功能仅需少量代码实现
  • 开源免费:MIT 许可证,可自由使用和修改

技术栈

  • TypeScript (96.2%) - 主要开发语言
  • HTML (2.8%) - 扩展界面
  • JavaScript (1.0%) - 配置和脚本
  • Webpack - 构建工具

工作原理

该扩展的核心原理是通过 Chrome 扩展的 webRequest API 拦截发往 Bing 的请求,并修改请求头中的 User-Agent 字段:

typescript
// Microsoft Edge 的 User-Agent 后缀
const MOBILE_UA_SUFFIX = 'EdgA/42.0.0.2057'
const DESKTOP_UA_SUFFIX = 'Edg/112.0.1722.48'

// 构建伪造的 User-Agent
const uaMaker = (isMobile: boolean): string => {
  if (firefox) {
    // Firefox 使用完整的 Chrome User-Agent + Edge 后缀
    if (isMobile) {
      return `${MOBILE_UA_PREFIX} ${MOBILE_UA_SUFFIX}`
    }
  }
  return `${DESKTOP_UA_PREFIX} ${DESKTOP_UA_SUFFIX}`
}

// 监听请求并修改请求头
chrome.webRequest.onBeforeSendHeaders.addListener(
  (details) => {
    const { requestHeaders } = details
    if (!requestHeaders) return undefined

    const newHeaders = requestHeaders.map((header) => {
      if (header.name.toLowerCase() === 'user-agent') {
        const isMobile = header.value?.toLowerCase().includes('mobile') ?? false
        header.value = uaMaker(isMobile)
      }
      return header
    })
    return { requestHeaders: newHeaders }
  },
  { urls: ['*://*.bing.com/*'] },
  ['blocking', 'requestHeaders']
)

技术要点

  1. 浏览器检测:微软通过检查 User-Agent 中的 Edg/EdgA/ 后缀来识别 Edge 浏览器
  2. User-Agent 构造:扩展根据原浏览器的 User-Agent 添加 Edge 后缀,使其通过验证
  3. 移动端处理:针对移动设备使用不同的 User-Agent 前缀和后缀

安装指南

Chrome 浏览器

  1. 访问 Chrome Web Store 安装扩展
  2. 安装完成后,访问 Bing Chat 即可使用

Firefox 浏览器

  1. 下载 Firefox 版本的扩展文件
  2. 在 Firefox 中打开 about:addons
  3. 选择 "从文件安装附加组件"
  4. 选择下载的扩展文件进行安装

手动安装(开发者)

bash
# 克隆仓库
git clone https://github.com/anaclumos/bing-chat-for-all-browsers.git
cd bing-chat-for-all-browsers

# 安装依赖
pnpm install

# 构建扩展
pnpm build

# 加载到浏览器
# Chrome: 打开 chrome://extensions/,启用开发者模式,加载已解压的扩展
# Firefox: 打开 about:debugging,加载临时附加组件

项目结构

text
bing-chat-for-all-browsers/
├── src/
│   ├── background.ts    # 核心后台脚本(User-Agent 修改逻辑)
│   └── popup.tsx        # 扩展弹出界面
├── public/              # 静态资源(图标等)
├── release/             # 构建输出
├── webpack/             # Webpack 配置
├── package.json         # 项目配置
├── tsconfig.json        # TypeScript 配置
├── rules.json           # 扩展权限配置
├── install.md           # 安装说明
└── uninstall.md         # 卸载说明

代码解析

background.ts 核心逻辑

typescript
declare var firefox: boolean | undefined;

// Edge 浏览器的 User-Agent 后缀
const MOBILE_UA_SUFFIX = 'EdgA/42.0.0.2057'
const DESKTOP_UA_SUFFIX = 'Edg/112.0.1722.48'

// Chrome User-Agent 模板
const DESKTOP_UA_PREFIX = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'
const MOBILE_UA_PREFIX = 'Mozilla/5.0 (Linux; Android 8.1.0; Pixel Build/OPM4.171019.021.D1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Mobile Safari/537.36'

// 构建伪造的 User-Agent
const uaMaker = (isMobile: boolean): string => {
  if (firefox) {
    // Firefox 需要替换整个 User-Agent
    if (isMobile) {
      return `${MOBILE_UA_PREFIX} ${MOBILE_UA_SUFFIX}`
    }
  }
  return `${DESKTOP_UA_PREFIX} ${DESKTOP_UA_SUFFIX}`
}

// 安装时打开安装说明
chrome.runtime.onInstalled.addListener((object) => {
  let install = 'http://github.com/anaclumos/bing-chat-for-all-browsers/tree/main/install.md'
  if (object.reason.toLowerCase().includes('install')) {
    chrome.tabs.create({ url: install })
  }
})

// 设置卸载跳转链接
chrome.runtime.setUninstallURL('http://github.com/anaclumos/bing-chat-for-all-browsers/tree/main/uninstall.md')

项目统计

  • GitHub Stars: 1.5k
  • Forks: 103
  • 主要语言: TypeScript (96.2%)
  • 许可证: MIT
  • 贡献者: 5 人

注意事项

  1. 项目已归档:该项目已于 2023 年 6 月 30 日被作者归档,不再维护
  2. 功能可能失效:随着 Bing Chat 的更新,该扩展可能已不再有效
  3. 仅供学习参考:该项目展示了浏览器扩展开发的基本原理和技术实现

项目链接

分享: