DSH Header Injection 插件:按 Host 规则注入请求头

在开发智能体或使用 DeepSeek Harness (DSH) 时,有时需要模拟特定客户端或绕过目标站点(如 WAF)的检查。直接修改配置很繁琐,且可能影响全局行为。该插件提供了按域名注入请求头的机制,允许针对特定 Host 修改 HTTP 请求头,同名头会覆盖原值。

插件简介

该插件由 ZhiGangCai 维护,是一个请求头注入工具。它支持按 Host 规则注入 HTTP 请求头,同名头覆盖原值,且对头名大小写不敏感。默认配置预设了一条规则:对 agentrouter.org 注入 User-Agent 以绕过 WAF。插件采用 MIT 许可证。

工作原理

插件通过 patch 全局 fetch 实现,无需修改 DSH 源码。它主要针对 openai-completions 和 anthropic-messages 通路。当请求发出时,系统会按规则顺序匹配 Host,取第一条命中规则;命中后逐条覆盖注入规则定义的请求头集合,原样转发;未命中任何规则的请求保持原样透传,零影响。

安装与启用

通过命令行安装插件,安装后需重启 DSH Web 后端使插件生效。

dsh plugin --profile web add /path/to/dsh-header-injection

配置方式

1. 设置面板(推荐)

DSH 设置面板提供了可视化的配置入口,支持即时生效。

  1. 进入 DSH 设置 -> 插件 -> 请求头注入。
  2. 配置项说明:
    - enabled:控制是否启用注入,默认为 true。
    - rules:注入规则数组。每条规则包含 hosts(Host 列表)和 headers(请求头集合)。
  3. 规则格式:
    - Host:逗号分隔的 Host 后缀列表,支持子域匹配(例如 example.org, foo.com 会匹配 a.example.org 和 foo.com)。
    - 请求头:多行文本,每行一条 头名: 值。注入时使用 Headers.set 语义,即覆盖同名头。
  4. 简写形式:规则内可用 ua 字段替代多行 headers(如 {hosts: "example.org", ua: "MyUA/1.0"}),等价于一条 User-Agent 头。两者同时存在时 headers 优先。

保存配置后,设置会持久化到 ~/.dsh/settings.yaml 的 dsh-header-injection: 段,且无需重启即可生效。

2. 环境变量降级

当 settings 服务不可用时,可使用环境变量配置。

环境变量 默认值 说明
AR_UA_ENABLED 1 0 时停止注入但保留 patch
AR_UA_HOSTS agentrouter.org 逗号分隔的 Host 列表
AR_UA_VALUE RooCode/0.15.0 UA 值
AR_UA_RULES - JSON 格式的多规则数组
AR_UA_HEADERS - 多行请求头文本(单条规则形态)

使用方法

1. 状态摘要

使用 dsh-header-injection 命令查看当前规则列表与命中/改写计数。

dsh-header-injection

2. 健康检查

访问 HTTP 健康路由 GET /dsh-header-injection/health,该路由会返回规则数组与命中/改写计数。

典型用例:绕过 AgentRouter 客户端 WAF

AgentRouter 前端部署了阿里云 WAF,对客户端进行三重校验(TLS 指纹 + SDK 请求头 + 请求结构)。DSH 默认的 User-Agent(deepseek-harness/<version>)会被拦截并返回 unauthorized_client_error。

通过注入 User-Agent: RooCode/0.15.0,WAF 放行进入令牌校验阶段。当前实测表明,仅修改 UA 即可绕过指纹检查,无需额外补充 X-Title 或 X-Stainless-* 等头。

注意事项

  1. 仅覆盖注入:插件仅覆盖注入请求头,未在规则中提及的头保持不变。
  2. TLS 指纹未伪装:当前版本未伪装 TLS 指纹。虽然 agentrouter.org 当前未按指纹拒绝该 UA 组合,但若目标站点收紧 WAF 判定,需在规则中补充更多头。
  3. 源码检查:安装前请检查源码与许可证,确保符合环境要求。

生态背景

DSH 理念是「一切皆插件」。社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

  • 插件目录:https://www.skillhub.cn/plugins/ZhiGangCai/dsh-header-injection
  • GitHub 仓库:https://github.com/ZhiGangCai/dsh-header-injection
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜