🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

连接授权插件 sperictao/dsh-client-connection-authz

DeepSeek Harness
sperictao42 天前有提交已提供中文文档扫描:未发现敏感能力

支持认证的 DeepSeek Harness 客户端连接替代方案

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/24 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sperictao/dsh-client-connection-authz
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · security
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 42 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@dsh-external/dsh-client-connection-authz(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.5 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 11:40:05

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 6 处,展示前 6 条)
  • 发起网络请求
    src/http-bridge.ts:21
    fetch(request: Request): Promise<Response>
  • 发起网络请求
    src/http-bridge.ts:75
    const response = await apiHandler.fetch(request)
  • 发起网络请求
    src/rpc-host.ts:72
    get fetch(): HostConnectionFetch {
  • 发起网络请求
    src/rpc-host.ts:117
    if (route?.methods.has(request.method) === true) return route.fetch(request)
  • 发起网络请求
    src/rpc-host.ts:123
    return interceptor.fetchHandler.fetch(request)
  • 发起网络请求
    src/rpc-host.ts:204
    async fetch(request: Request): Promise<Response> {
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-connection@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-invariants
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 认证连接客户端
  • 替代连接方案

README

由 DeepSeek 最新模型翻译生成
dsh-client-connection-authz DeepSeek Harness 内置 connection 的完整替代包(当前跟线 0.1.7-alpha.1)。它保留官方 HTTP、共享/独立 RPC、WebSocket 和浏览器 client 行为,并在所有远程入口前增加一个由外部插件提供的 ConnectionRequestAuthorizer。 设计 本包的 bundle patch 做两件事: 1. 用 id + name 双重匹配禁用内置 @deepseek-ai/dsh-client-connection;如果上游改名,patch 会显式告警而不会误伤复用该 id 的其它插件。 2. 插入 @dsh-external/dsh-client-connection-authz,并强制注入 connectionRequestAuthorizer。认证插件缺失或配置失败时,connection 不会以匿名模式降级启动。 浏览器 bundle 来自官方 @deepseek-ai/dsh-client-connection(跟随 package.json 声明的依赖范围),构建时只替换模块表 id;脚本校验唯一 id 出现次数防止静默漂移,不校验上游精确版本。
展开完整文档(README 剩余 1 节)
dsh-client-connection-authz

DeepSeek Harness 内置 connection 的完整替代包(当前跟线 0.1.7-alpha.1)。它保留官方 HTTP、共享/独立 RPC、WebSocket 和浏览器 client 行为,并在所有远程入口前增加一个由外部插件提供的 ConnectionRequestAuthorizer。

设计

本包的 bundle patch 做两件事:

1. 用 id + name 双重匹配禁用内置 @deepseek-ai/dsh-client-connection;如果上游改名,patch 会显式告警而不会误伤复用该 id 的其它插件。
2. 插入 @dsh-external/dsh-client-connection-authz,并强制注入 connectionRequestAuthorizer。认证插件缺失或配置失败时,connection 不会以匿名模式降级启动。

浏览器 bundle 来自官方 @deepseek-ai/dsh-client-connection(跟随 package.json 声明的依赖范围),构建时只替换模块表 id;脚本校验唯一 id 出现次数防止静默漂移,不校验上游精确版本。Host 源码基于 DeepSeek Harness commit 47f943859bef60e4160492346772ded9b24f765a,来源见 NOTICE.md。

授权接口

interface ConnectionRequestAuthorizer {
authorize(facts: ConnectionRequestFacts):
| { allowed: true; principal: ConnectionPrincipal }
| { allowed: false; status: 401 | 403 }
}

facts 包含 transport、channel、endpoint、headers、TCP peer address,以及目标要求的 authority:

- trusted-host:普通 API、普通 RPC 和两个 WebSocket downlink。
- loopback:设置、凭据、宿主文件操作等特权 API;认证插件只有显式授予更高权限才能让远程调用通过。

特权判定分两级,src/index.ts 的 isPrivilegedEndpoint 是唯一判定点:

1. PRIVILEGED_ENDPOINTS:混合命名空间里的单个特权端点(settings/*、 session/openWorkspacePath 等与普通端点同处一个命名空间)。
2. PRIVILEGED_NAMESPACES:整个命名空间都不存在 use-authority 方法的,按前缀整体判特权(terminal、workspace、workspaceFiles、account、 officeToPdf、cordisHostRunner/dynamicCordisRunner)。

第二级的存在理由:上游给命名空间加方法不算破坏性变更——0.1.7 把 terminal 控制器从 1 个方法扩到 10 个(create/write/resize/close…,直接在本机以系统用户权限开真实 PTY)。只维护精确端点名的话,上游每一次这样的扩张都静默失败开放。
判定按前缀是 fail-closed:多列一个永不匹配的命名空间没有代价,漏一个就是远程任意命令执行。

执行顺序固定为:Host/Origin/DNS-rebinding fence → 本地回环判断 → 外部 authorizer → body 读取/协议升级/业务 handler。有效本地旁路必须同时满足回环 Host 和回环 TCP peer;远端仅伪造 Host: 127.0.0.1 仍会进入 authorizer。共享 RPC 会在授权前把 handler 与 authority 快照为同一 target,避免授权后切换 interceptor 的时序绕过。

浏览器侧不再用页面 hostname 预先否决 Host-authority 界面。替换 bundle 会让既有 connection.isLoopback 消费者尝试配置、凭据、宿主文件等特权 RPC;这不是授权结论,每个请求仍必须通过上述 Host fence 与外部 authorizer。没有 admin capability 的远程身份只能得到 403,拥有 admin capability 的身份才会到达业务 handler。

安装

这个包故意不能单独启用;profile 还必须安装一个提供 authorizer 的认证包。例如与 dsh-auth-tailscale 一起安装:

gh auth setup-git
dsh plugin --profile web add \
git+https://github.com/sperictao/dsh-client-connection-authz.git \
git+https://github.com/sperictao/dsh-auth-tailscale.git

两个仓库目前是 private;上面的已验证路径使用当前 gh 登录为 Git 配置 HTTPS 凭据。也可以改用已配置公钥的 SSH URL。

开发

pnpm install
pnpm check

测试覆盖 HTTP、共享/独立 RPC、WebSocket、特权 authority、回环 Host 伪造和既有 trust fence。pnpm build 生成并校验官方浏览器 bundle。

兼容范围

依赖声明(package.json 的 ^0.1.7-alpha.1 等)是本包与 dsh 版本兼容性的唯一事实来源:范围语义承诺该包在任何满足范围的 dsh 版本下工作。升级 dsh 到新线时,只有当上游 d.ts 出现 breaking change 或依赖范围不再覆盖新线时才需要改代码,此时 bump 本包版本并把依赖范围同步到新下限(如 ^0.1.6-alpha.1 → ^0.1.7-alpha.1)。不能用锁死确切版本的方式"防漂移"——那只会让 pnpm 在 profile 里解出版本裂缝(rc.6 插件 + rc.8 核心的 boot 崩溃就是这么来的)。
0.1.6 → 0.1.7 正是这条政策预期的情况:上游 Connection 改了契约(HostConnectionHandle 新增 operator 与 admit;ConnectionRpcHandler 多一个 peer 参数并改返回可携带二进制附件的 ConnectionRpcHandlerResult),host 半边因此有代码改动;浏览器半边仍是官方产物加两处字符串替换,构建脚本的唯一 id 与 loopback 权威锚点在 0.1.7 产物里仍各命中一次,故未动。
预览分享卡片长什么样 ↓sperictao/dsh-client-connection-authz
分享 · DeepSeek Harness Hub
sperictao/dsh-client-connection-authz

支持认证的 DeepSeek Harness 客户端连接替代方案

这是你的仓库?认领条目

回到顶部