header-modify-extention

请求头修改(Header Modify)

语言

Header Modify — 为当前网站改写 HTTP 请求头

用于改写当前网站请求头的 Chrome 扩展。启用后,该标签页内的请求(含 iframe / XHR / fetch / 媒体)都会应用你配置的请求头;语义为 set(没有则添加,有则覆盖)。

基于模板: chrome-extension-boilerplate-react-vite — React + Vite 8 的 Manifest V3 脚手架,构建更快。欢迎 StarMerge Request


Chrome 网上应用店

发布指南、可粘贴的五语商店文案、隐私政策、审核说明与宣传图:

pnpm build
pnpm zip   # → releases/header-modify-extention_v{version}.zip

重新生成图标 / 商店图:

pnpm assets:store
pnpm build

界面演示

为当前网站启用 — 按 origin 打开改写。下面列表里的请求头按 set 语义生效(没有则添加,有则覆盖)。

弹窗:已为当前站点启用,并列出 user-agent / x-debug / accept-language

从 DevTools 粘贴 — 从 Chrome Network 复制请求头(名称/值交替行、Name: Value 或 cURL -H),粘贴后点 Parse & Merge

弹窗:粘贴 DevTools 请求头并 Parse & Merge

包含 iframe — session 规则按 tabIds 作用在当前标签页,主文档、跨域 iframe、XHR、fetch、媒体请求都会带上同一套请求头。

示意图:同一标签页内主页面与跨域 iframe 请求都应用相同规则


功能


原理

Manifest V3 不能使用阻塞式 webRequest。本扩展使用:

chrome.declarativeNetRequest.updateSessionRules

modifyHeaders + operation: "set"

规则同时用 condition.tabIds(标签页内请求)和 initiatorDomains(站点 Service Worker / Turbo 拉 HTML 时没有 tabId,否则会漏改)。请求头与启用站点存于 chrome.storage.local;标签页或配置变化时重建 session 规则。

User-Agent: Chrome 还会发送 User-Agent Client HintsSec-CH-UASec-CH-UA-Platform 等)。很多网站不看 User-Agent 字符串,而以这些提示为准。设置 User-Agent 时,本扩展会去掉这些 hint,改写才可能生效。

开发者工具: Network 里若出现 “Provisional headers are shown”,显示的仍可能是原 UA。请用服务端回显(如 https://httpbin.org/headers)或非 provisional 的请求核对。页面 JS 的 navigator.userAgent 不会被 DNR 改掉。

受保护请求头: Chrome 不能 SET HostContent-LengthSec-Fetch-* 等。这些项会被跳过,以免整条规则失败(连 User-Agent 一起失效)。


安装(开发)

pnpm install
pnpm build
  1. 打开 chrome://extensions/
  2. 打开 开发者模式
  3. 加载已解压的扩展程序,选择 dist/ 目录

开发热更新:

pnpm dev

使用

使用步骤:打开页面、粘贴请求头、为当前站点启用、刷新并在 Network 中检查

  1. 打开普通 http(s) 页面。
  2. 点击扩展图标。
  3. 粘贴开发者工具中的请求头(或手动添加)。
  4. 打开 为当前网站启用
  5. 刷新页面,在 Network 中检查请求头是否生效。

开发者工具粘贴示例

sec-fetch-user
?1
upgrade-insecure-requests
1
user-agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36

权限说明

权限 用途
storage 持久化请求头、启用站点、语言
tabs 识别当前标签页 / origin 并同步规则
declarativeNetRequest 改写请求头
declarativeNetRequestFeedback 规则诊断相关能力
<all_urls> 修改页面与 iframe 请求头所需

脚本

命令 说明
pnpm dev 监听构建
pnpm build 类型检查 + 生产构建 → dist/
pnpm test Vitest(watch)
pnpm test:run Vitest 单次
pnpm lint ESLint
pnpm zip 打包 dist/releases/header-modify-extention_v*.zip
pnpm build:zip 生产构建 + zip
pnpm release:github:dry 构建 zip 并预览 GitHub Release 说明(不打 tag / 不推送)
pnpm release:github:full 构建、提交、打 tag、gh release create、推送
pnpm assets:store 重新生成图标与商店宣传图/截图

更新日志

版本 说明
v1.0.0 首个开源版本:Popup 编辑、DevTools 粘贴、按站启用、DNR 标签页作用域改写

许可证

MIT