dsh-auth-cookie-guard

DSH PLUGIN会话与消息

仓库 vi0let-dev/dsh-auth-cookie-guard · npm dsh-auth-cookie-guard

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH 桌面版插件,自动清理累积的 dsh-auth-* 认证 Cookie,避免请求头超限导致 Web authentication failed 启动失败。

一句话选型结论

按资料字段整理

dsh-auth-cookie-guard 是会话与消息类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 5 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类会话与消息 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-11-09 创建于 2026-11-09
README 10.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:vi0let-dev/dsh-auth-cookie-guard#v0.2.2
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.2-rc.1,Node.js 要求 ^22.19.0 || >=24.0.0;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.2-rc.1版本不匹配时安装会报错
Node.js 要求^22.19.0 || >=24.0.0来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-auth-cookie-guard可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-auth-cookie-guard:为 DeepSeek Harness 桌面版清理认证 Cookie 的 DSH plugin

  • 启动自动清理旧认证 Cookie
  • 设置页显示风险与数量
  • 一键立即清理
  • 页面内切换自动/试运行/阈值
  • 431 时用救援脚本修复

适用场景

存储联网搜索

上游标签

cookiedeepseekdeepseek-harnessdesktopdshdsh-pluginelectronpluginstartup-fix

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

风险详情

  • 结论说明 静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。
  • 风险计数 严重 0 / 高 0

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.2-rc.1),按版本装不容易报错。
  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在会话与消息场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-auth-cookie-guard当前 L5 · 运行验证通过 低风险 0 0.2.2-rc.1 有
dsh-desktop L3 · 安装规范通过 低风险 3.0 万 未标注 无
openpets L4 · 沙盒安装通过 低风险 1,274 未标注 有
deeptide L4 · 沙盒安装通过 低风险 1,104 0.1.1-rc.2 有
jingyun-dsh L3 · 安装规范通过 低风险 1,004 未标注 有
study-mate 未做沙盒验证 未标注 856 未标注 无

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方vi0let-dev仓库 dsh-auth-cookie-guard · 默认分支 main
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-11-09 · 2026-11-09最后推送 2026-11-09
本站收录2026-11-10首次进入本站目录的时间

README 全文

10.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-auth-cookie-guard

DSH(DeepSeek Harness)桌面版插件。它解决的是这个具体故障:

Error: desktop welcome: Web authentication failed
at connectDesktopWelcome (.../lib/main.js:...)

不是登录失效,也不是插件损坏,而是认证 Cookie 在 Chromium 的 Cookie 库里越积越多,最终把请求头撑破。


问题背景

  1. 桌面版每次启动,宿主进程都会绑定一个新的随机回环端口(本机实测落在 1024–15000 的系统动态端口段,例如 127.0.0.1:13708)。
  2. 宿主签发的浏览器会话 Cookie 名字是 dsh-auth-,名字里带端口。
  3. Chromium 的 Cookie 只按主机隔离,不区分端口;127.0.0.1 上所有 dsh-auth-* 在每次请求里都会被一起发出去。
  4. 每启动一次就多一枚,且 30 天后才过期。按每枚约 175 字节估算,70~90 次启动后 Cookie 请求头接近 Node 默认的 16 KiB 上限,HTTP 解析器直接回 431,任何应用代码都来不及执行;壳层把非 2xx 一律报成 "Web authentication failed"。

所以「删掉 Cookies 文件」只是止血:机制还在,几十次启动后必然复发,而且删整份数据库会连其他站点/状态一起清掉。

这个插件做了什么

它把「清理」变成每次启动自动发生、且只动 DSH 自己签发的那几枚 Cookie:

能力 说明
启动自动清理 页面每次加载后向插件路由发一次同源请求;Host 从该请求的 Cookie 头里读出所有 dsh-auth-*,只保留当前端口那一枚,其余用 Set-Cookie: =; Max-Age=0; Path=/ 让 Chromium 自己删除
设置页状态 设置 →「认证 Cookie 守卫」:当前宿主地址、当前 Cookie 短名、上次请求携带数量与估算字节、风险分级、上次清理结果
一键清理 页面上「立即清理」,立即执行一次并回显删除数量
页面内配置 自动清理、试运行、告警阈值可直接切换并保存(写入 profile 的 cordis.patch.yml)
救援脚本 已经 431 打不开桌面版时,退出应用后运行 scripts/purge-auth-cookies.mjs,备份后只删 dsh-auth-* 行

它不做什么:不读会话内容、不写用户目录、不联网、不碰 $DSH_HOME 下的凭据与会话;不删除任何非 dsh-auth-* 的 Cookie;当前端口的 Cookie 永远保留。


使用方式

安装并重启 DSH 桌面版后:

  1. 自动:每次启动自动清理旧的认证 Cookie,通常你什么都不用做。
  2. 手动:设置 →「认证 Cookie 守卫」→「立即清理」。
  3. 看状态:「上次请求携带 N 枚认证 Cookie(其中过期 M 枚)」——这个 N 就是决定会不会出事的指标,健康值应当长期是 1~2。

> 安装(二选一,本仓库不代你执行):
> - GitHub:dsh plugin --profile desktop add github:vi0let-dev/dsh-auth-cookie-guard
> - 本地目录:dsh plugin --profile desktop add <本目录绝对路径>
>
> 也可以在插件管理页添加。安装后需重启 DSH 才会加载新的 JS 模块。

已经打不开桌面版了

页面加载是清理的前提,所以「请求头已经超限、启动直接失败」这种情况插件帮不上忙,需要手动跑一次救援:

# 1. 完全退出桌面版(托盘退出,并确认任务管理器里没有残留进程)
# 2. 在插件目录下运行:
node scripts/purge-auth-cookies.mjs
# 只想先看看有多少枚、不改数据:
node scripts/purge-auth-cookies.mjs --dry-run

脚本会先备份 Cookies 数据库(同目录 Cookies.dsh-cookie-guard-<时间戳>.bak),再只删除 127.0.0.1 / localhost 上名为 dsh-auth-* 的行。其余 Cookie、其余表、其余文件都不动。

数据库路径:%APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies(macOS/Linux 由脚本按平台推导)。


配置

三个开关都可以直接在「设置 → 认证 Cookie 守卫」里改,点「保存」即生效;保存走 DSH 的 configEditor,写进当前 profile 的 cordis.patch.yml(不是插件包内那份),因此重启后仍然保留,也不会因为升级插件被覆盖。

字段 类型 默认 说明
enabled boolean true 启动时自动清理;关掉后只保留手动「立即清理」
dryRun boolean false 只报告不删除,用于观察将要清掉哪些 Cookie
warnAt integer 1–500 40 设置页开始变黄告警的 Cookie 条数

页面内控件的边界:

  • warnAt 必须是 1–500 的整数,非法值会被服务端拒绝并提示,不会静默写入;
  • 保存只接受这三个键,其它字段一律 400(页面拿不到写任意配置的能力);
  • 保存会触发该插件行重新加载,路由随之重新注册,页面随后会自动刷新状态;
  • 「恢复默认」把三项一键写回插件初始默认(开启 / 非试运行 / 40 枚);写回值与包内默认一致时,configEditor 会直接移除 profile 层的覆盖行,等价于回到初始配置;
  • 若某个 profile 没有提供 configEditor(非 Web/精简组合),页面显示"无法保存"的提示,此时仍可手改 profile 的 cordis.patch.yml。

cordis.patch.yml 里的 config 依然有效,作为默认值;一旦在页面保存过,profile 层会覆盖它。页面上的「立即清理」不受 enabled / dryRun 限制(这是显式操作)。


项目结构

dsh-auth-cookie-guard/
├── package.json                    # 包名 = patch 行 name = ModuleLoader id
├── cordis.patch.yml                # 插入一行,带默认 config
├── index.js                        # Host 半边:/api/dsh-auth-cookie-guard 路由
├── core.mjs                        # 纯函数:Cookie 名、解析、清理计划、风险分级
├── client.js                       # Web 半边:启动清理 + 设置页
├── locale/{zh,en}.json             # 插件管理器显示名与描述
├── icon.svg                        # 原创图标
├── scripts/purge-auth-cookies.mjs  # 打不开时的一次性救援
├── docs/banner.png                 # README 顶部横幅
├── test/                           # 5 组测试,共 54 项
├── README.md / AUDIT.md / LICENSE

依赖

  • 运行时:零第三方依赖。 只用 node:crypto、Web 标准 Request/Response/Headers,以及 DSH 提供的 webServer 服务。
  • 救援脚本:node:sqlite(Node 内置)。 Node ≥ 22.5 提供;本插件 engines.node 要求 ^22.19.0 || >=24.0.0。
  • 没有安装脚本、没有 postinstall、没有构建步骤。

隐私

  • Host 路由只读三个请求头:Host、Cookie、x-dsh-auth-cookie-guard,不做任何持久化、日志里只有数量与状态码。
  • Cookie 值不解析、不记录、不回传;页面上只显示 Cookie 名的短哈希。
  • 不发起任何外部网络请求;不读会话日志、不读凭据文件。
  • 响应里的 Set-Cookie 只针对本机 127.0.0.1 上、名字严格匹配 dsh-auth-<43 位 base64url> 的条目。

安全注意事项

  • 路由带两道栅栏:Host 必须是 loopback 字面量(防 DNS rebinding),且必须带同源自定义头 x-dsh-auth-cookie-guard(跨站表单无法设置)。
  • 配置写入只接受 enabled / dryRun / warnAt 三个键并做类型校验,通过 DSH 的 configEditor 落到 profile 配置层,插件不直接写文件;没有 configEditor 的组合会拒绝保存且不改动任何状态。
  • 当前端口的 Cookie 缺失时整批放弃删除,避免把正在使用的会话踢下线;设置页会显示「已跳过」提示。
  • 单次响应最多删除 180 枚(Chromium 每主机上限),剩余的在下一轮继续。
  • dryRun 可在不删任何东西的前提下确认解析结果。

开发说明

# 全部测试(54 项:纯函数 / 路由 / 设置保存 / SQLite 救援 / Client 注册)
node test/run-all.mjs

# 语法检查
node --check index.js; node --check client.js; node --check core.mjs

# 结构自检与安全扫描(plugin-builder 自带脚本)
node %USERPROFILE%\.dsh\skills\plugin-builder\scripts\check-project.mjs .
node %USERPROFILE%\.dsh\skills\plugin-builder\scripts\audit-scan.mjs .

关键 API(本机 DSH 0.2.2-rc.1 已核实):

  • ctx.inject(['webServer'], scoped => scoped.effect(() => server.register({ kind: 'prefix', path, handler }))) —— 最长前缀匹配,/api 归 connection 的 RPC 守卫。
  • server.getOrigin() → http://127.0.0.1:;Cookie 的 authority 就是 new URL(origin).host。
  • 路由 handler 返回标准 Response;set-cookie 会被 web 服务按多行原样写出(headers.getSetCookie()),这是删除 HttpOnly Cookie 的唯一可行通道。
  • Client 半边:ctx.slots.inject('settings.section', () => ctx.slots.register({ name, id, order, label, locale }, Component))。

已知限制

  1. 清理只对「下一次启动」生效。页面必须先加载成功;已经 431 的状态要用救援脚本。
  2. 插件读不到也改不了 Chromium 的 Cookies 数据库(运行中被独占),所以一切修复都走浏览器应答,不做磁盘操作。
  3. 若宿主改用 https(Secure Cookie)或换用非 127.0.0.1 的主机名,名称规则不变,但设置页显示与删除都以 getOrigin() 为准;跨主机名的情况未覆盖。
  4. 真机未验证(本仓库只做代码与本地测试交付):Electron 会话是否接受这些 Set-Cookie 删除、设置页在明暗主题下的观感、安装后启动行为。验证方法见 AUDIT.md。

卸载

在插件管理页停用并移除 dsh-auth-cookie-guard,重启 DSH。插件不写任何自有数据;唯一可能的残留是救援脚本生成的 Cookies.dsh-cookie-guard-*.bak 备份,可自行删除。

许可

MIT,见 LICENSE。

常见问题

9 问
答案由本站依据条目字段整理,不引用上游原文
dsh-auth-cookie-guard 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:vi0let-dev/dsh-auth-cookie-guard#v0.2.2` 即可。对应的 npm 包名是 `dsh-auth-cookie-guard`。

dsh-auth-cookie-guard 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-auth-cookie-guard 安全吗?

低风险。静态扫描 低;动态审计无结论(以下以静态为准)→ 总评级 低。

dsh-auth-cookie-guard 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-auth-cookie-guard 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.2-rc.1。

dsh-auth-cookie-guard 需要什么运行环境?

Node.js ^22.19.0 || >=24.0.0。环境不满足时安装会失败,建议先确认本机版本。

dsh-auth-cookie-guard 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-auth-cookie-guard 有哪些功能?

启动自动清理旧认证 Cookie、设置页显示风险与数量、一键立即清理、页面内切换自动/试运行/阈值、431 时用救援脚本修复。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

vi0let-dev 的其它插件

6 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。