DSH Web 密碼門插件介紹

前言

在本地部署 DeepSeek Harness (DSH) 時,通常需要直接暴露 Web 端口。爲了在不修改 DSH 核心配置或引入外部反向代理(如 Nginx)的情況下增加一層訪問控制,可以在 DSH Web 進程內集成一個插件。dsh-web-pass 插件正是爲此設計,它以零依賴的方式運行在 DSH Web 進程內,提供 Cookie 認證、多密碼分流及訪問日誌查看功能。

插件介紹

dsh-web-pass 是一個由維護者 linz919 開發的 admin-security 類插件。它是一個零依賴的 Web 密碼門,原生集成了設置頁面,支持通過 Cookie 進行會話認證,並具備強制設密、登錄失敗鎖定及多密碼多上游分流能力。

核心功能

插件主要包含以下功能:
* Cookie 會話認證:基於 Cookie 的認證機制,非 Nginx Basic Auth。
* 強制設密:首次訪問必須設置密碼(需滿足複雜度要求)。
* 真鎖定機制:登錄失敗達到上限後進入鎖定狀態(默認 60s 基準),支持指數退避(最大 16 倍),成功登錄不清零失敗計數。
* 滑動會話:會話有效期爲 2 天,每日使用自動續期。
* 多密碼多上游:支持“訪客模式”,一個密碼對應一個後端服務,實現多入口分流。
* 自動代持認證:自動代持 DSH 內置認證,用戶無需再處理 DSH 的 Token/Cookie。
* 訪問日誌:內置訪問日誌查看器,記錄密碼驗證相關請求。
* 零依賴:無外部依賴,原生集成設置頁。
* 原生設置頁:提供原生集成的設置界面。

安裝與啓用

使用官方命令安裝插件:

dsh plugin --profile web add dsh-web-pass

安裝後重啓 DSH Web 服務即可生效。

典型用法

  1. 訪問入口:瀏覽器通過 TLS 或反向代理訪問插件監聽端口(默認 3081),內部轉發至 DSH 或其他本地服務。
  2. 配置後端:登錄後進入設置頁,直接添加上游(標籤 + host:port),即時生效。
  3. 多入口分流:配置多個後端條目,每個條目設置獨立密碼。登錄時輸入對應密碼,即可進入不同的後端服務(如主人 DSH 或訪客乾淨 DSH)。

數據與配置

  • 數據存儲:所有數據存儲在 $DSH_HOME/dsh-web-pass/ 目錄下,包括密碼哈希、會話和日誌。
  • 會話處理:插件生成的會話 Cookie (dws_session) 不會轉發給上游,上游也無法通過響應頭寫入該 Cookie。
  • 登出限制:登出接口僅支持 POST 請求,防止 CSRF 攻擊。
  • 首次訪問:必須強制設置密碼,否則無法進入。

注意事項

  • 上游回包過濾:上游回包中的 dws_session 會被自動過濾,防止插件 Cookie 泄露。
  • 一致性:升級插件或調整配置後,建議重新登錄以刷新會話。

結語

dsh-web-pass 提供了一種輕量級的方案來爲本地 DSH 服務增加訪問控制與多入口管理能力。更多細節與源碼,請參考 GitHub。

羽毛球分组比赛记分
小程序二维码

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

小夜