Cookie 守護(dsh-cookie-guard):DSH 桌面版登錄 cookie 泄漏自查浮窗

前言

DeepSeek Harness(DSH)桌面版每次啓動都會在隨機端口上拉起本地 Host,並在根請求裏通過 Set-Cookie 寫入一條 dsh-auth-* 登錄 cookie;Chromium 持久化 jar 會收下這些條目且默認不會刪除。反覆啓動會在 HTTP 請求頭裏累積佔用,接近 Node 默認 maxHeaderSize(16384 字節)時,Host 可能返回 431,界面出現 desktop welcome: Web authentication failed,俗稱「DSH 打不開」。事後清 cookie 庫可以恢復,但缺少日常可見的「離上限還有多遠」的指標。

下面介紹社區插件 dsh-cookie-guard(維護者 3150481853,分類 admin-security):在 DSH 窗口內提供只讀浮窗,實時顯示 dsh-auth-* 條數、請求頭佔用與剩餘可啓動次數,接近 16 KiB 上限時變色告警。插件以 MIT 許可發佈,當前 package 版本爲 1.0.1。

這是什麼

Cookie 守護是 DSH 桌面版的小浮窗插件:不解析、不修改、不外發 cookie 內容,不髮網絡請求,也不自動清理;只做本地 Chromium Network/Cookies 庫的只讀探測與展示。

它解決的核心問題是:在爆掉第 72 次啓動量級(README 按每條約 228 字節估算)之前,讓用戶隨時看到曲線上的位置,而不是等到啓動失敗再排查。

背景:爲什麼會攢滿

DSH 桌面 Host 使用 --port 0 隨機端口;cookie 名爲 dsh-auth-<sha256("127.0.0.1:<端口>")> 形式。README 給出的量級如下:

項目 數值
每條 cookie 在請求頭裏約佔 228 字節
Node 默認 maxHeaderSize 16384 字節
約在第幾次啓動觸頂 第 72 次

觸頂後根請求在 Node 層被 431 Request Header Fields Too Large 攔截。插件相當於在這條增長曲線上裝儀表盤。

核心功能

浮窗界面

  • 環形儀表:請求頭佔用百分比;低於 50% 爲綠,50%~71 爲黃,71 及以上爲紅。
  • 三格數字:cookie 條數、請求頭字節、還能再啓動幾次。
  • 立即檢測:強制重新讀庫(平時 60 秒內複用緩存,避免頻繁掃描句柄表)。
  • 收起 / 拖動:可摺疊爲只顯示百分比的膠囊;標題欄拖動,位置寫入 localStorage。

數據每 10 分鐘自檢;每個本地日期保留一條快照,歷史最多 90 條,狀態文件路徑爲:

%USERPROFILE%\.dsh\cookie-guard\state.json

讀庫方式(Windows)

運行中 DSH 對 Network/Cookies 獨佔打開,直接打開 SQLite 會失敗。插件在 Windows 上通過枚舉 deepseek harness.exe 進程句柄、複製指向 \network\cookies 的句柄並讀取字節流,用正則統計 dsh-auth-<43 位> 名字去重。單次約 240 ms,故外層有 60 秒緩存。實現依賴 DSH 桌面版自帶的 koffi(3.1.1),插件用 createRequire 加載,無額外編譯依賴。

說明:渲染進程請求頭裏只能看到當前啓動注入的那一條,jar 裏歷史條目數必須從庫側讀取。

本地 API 與隱私

服務端路由爲 /dsh-cookie-guard/api,經宿主 connection.requestRejection 做同源 / loopback 校驗。probe.js 只讀字節流並按名字計數,狀態文件僅含日期、條數、字節數。

獨立桌面工具(可選)

倉庫 desktop/ 提供不依賴 DSH 的同款讀庫 UI(Python 3.10 + tkinter)及清理菜單腳本 dsh-cookie-clean-menu.ps1。Release 提供 DSH-Cookie-Check-1.0.1.exe(8.2 MB)。清理操作需在管理員終端執行,且需先結束 DSH 進程再刪庫,否則 Chromium 鎖文件會導致刪除失敗——細節見 README 與清理菜單說明。

安裝與啓用

在 DSH 內(推薦):設置 → 插件 → 安裝,填寫:

github:3150481853/dsh-cookie-guard

命令行安裝(desktop profile):

dsh plugin --profile desktop add github:3150481853/dsh-cookie-guard

裝好後 DSH 窗口右下角應出現浮窗;若未出現,刷新頁面(客戶端包懶加載)。開發時從同一命令安裝後,Host 與 client.js 支持熱更新,一般無需重啓 DSH。

典型用法

  1. 安裝插件後觀察浮窗三格數字與環形百分比,日常無需操作。
  2. 懷疑計數滯後時,點 立即檢測 刷新讀數。
  3. 儀表變黃或變紅時,按 README 使用 desktop/dsh-cookie-clean-menu.ps1 或 Release exe 中的清理流程(管理員、先關 DSH)備份並清理 cookie 庫,再重新登錄 DSH。
  4. 需要離線自查、未開 DSH 時,可單獨運行 DSH-Cookie-Check-1.0.1.exe。

適用場景與注意

適合誰:長期使用 DSH 桌面版、頻繁重啓 Host 的 Windows 用戶,希望在出現 Web authentication failed 之前做自查。

限制(來自 README):

  • 僅 Windows(句柄表方案爲 Win32 API)。
  • 只讀路徑 %APPDATA%\@deepseek-ai\dsh-desktop\Network\Cookies;讀失敗時界面顯示「讀不到 cookie 庫:<原因>」,不僞造數字。
  • 插件在當前 DSH 進程權限下運行;安裝前應在 GitHub 查看源碼與 MIT 許可證,自行評估是否滿足環境策略。

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文所述安裝源以倉庫 README 爲準。

結尾

dsh-cookie-guard 用只讀浮窗把 dsh-auth-* 累積與 16 KiB 請求頭上限的關係可視化,並配合可選清理工具,降低「突然打不開」的排查成本。

  • 目錄頁:https://www.skillhub.cn/plugins/3150481853/dsh-cookie-guard
  • 源碼與文檔:https://github.com/3150481853/dsh-cookie-guard
羽毛球分组比赛记分
小程序二维码

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

小夜