前言¶
DeepSeek Harness(DSH)支持基於插件的 Web 部署。默認情況下,Web 服務器的入口可能缺乏主機端的安全策略。如果服務暴露在公網,未受保護的 API、SSE 和 WebSocket 接口可能面臨直接訪問的風險。在 WebServer 層面增加一個統一的認證策略,是提升 Web 部署安全性的基礎步驟。
插件介紹¶
dsh-auth-lock 是一個 DSH Host 端插件,由開發者 imchenmin 維護。它的核心功能是在 DSH Web 部署中提供密碼認證能力,覆蓋 DSH API、SSE、WebSocket 以及第三方插件註冊的所有服務器路由。
核心功能¶
該插件主要包含以下安全與會話管理能力:
-
安全存儲與驗證
使用 Node.js 的scrypt算法進行密碼派生,參數爲 N=32768, r=8, p=1,配合 128 位隨機鹽。密碼驗證採用恆定時間比較,確保防時序攻擊。密碼明文永遠不會被存儲。 -
會話管理
生成 256 位隨機會話令牌,Host 內存中僅保留對應的 SHA-256 密鑰。使用 HttpOnly、SameSite=Strict 的 Cookie,並在 TLS 連接下自動啓用 Secure 標誌。會話默認擁有 10 分鐘空閒超時(可配置 1 至 1440 分鐘)和 24 小時的絕對生命週期。 -
訪問控制
默認僅允許本地迴環地址進行首次設置,防止新實例被遠程接管。對遠程地址實施 15 分鐘窗口內 8 次密碼失敗嘗試的限制。同時進行同源 Origin 檢查並限制 16 KiB 的請求體大小。 -
通用性
不依賴移動、遠程控制或配對等其他業務插件,僅依賴 DSH WebServer 的webserver/request和webserver/upgrade水流。認證策略作用於 WebServer 層,自動應用於所有註冊的路由。
安裝與啓用¶
插件對 Node.js 版本有要求:^22.19.0 || >=24.0.0。
安裝命令如下:
dsh plugin --profile web add github:imchenmin/dsh-auth-lock
安裝後,檢查 DSH 配置(--dump-config),確認 cordis.patch.yml 中包含 id: auth-lock。如果頁面報告 DSH 版本不兼容,插件將保持非活動狀態,建議卸載。
典型用法¶
-
首次設置
在運行 DSH 的本地瀏覽器訪問http://127.0.0.1:<port>,系統會引導創建一個 4-16 字符的密碼或數字 PIN。 -
登錄與訪問
後續訪問時,輸入密碼即可通過認證。登錄成功後頁面會自動刷新或返回原頁面,以便 API、SSE 和 WebSocket 客戶端重新建立連接。 -
修改密碼
進入 DSH 設置面板,找到“Access Lock”部分。依次輸入當前密碼、新密碼、確認新密碼,保存後系統會撤銷舊會話並生成新的認證密鑰。 -
重置密碼
如果忘記密碼,需在運行 DSH 的主機上重置。停止dsh web後執行:
dsh plugin --profile web exec dsh-auth-lock-reset -- --yes
重啓 DSH 後,系統將恢復首次設置狀態。
注意事項¶
-
DSH 版本兼容性
該插件依賴 DSH 的特定 WebServer 水流。在舊版本的 DSH 構建上,插件會保持非活動狀態,且頁面日誌會明確提示並推薦卸載。 -
不可逆性
密碼驗證器是不可逆的,因此無法恢復原始密碼。一旦遺忘,必須通過上述命令重置。 -
環境依賴
插件運行於 DSH 進程的 Host 權限下。安裝前建議檢查源碼與許可證。 -
生態變動
DeepSeek Harness 正處於快速演變中,可能會引入破壞擴展點兼容性的變更。長期部署建議鎖定 Git Commit 或使用明確發佈的版本。
總結¶
dsh-auth-lock 爲 DSH Web 部署提供了一個輕量級但標準化的認證層。它通過密碼、會話管理和嚴格的訪問控制,填補了 Host 端的安全空白,適合需要提升 Web 服務安全性的場景。
- 插件目錄:https://www.skillhub.cn/plugins/imchenmin/dsh-auth-lock
- 源碼地址:https://github.com/imchenmin/dsh-auth-lock