dsh-lan-pass:局域網密碼門禁

前言

DSH 提供了本地 Web UI(通常監聽 3080 端口)。在局域網內通過手機或平板訪問這個 UI,通常需要配置反向代理或端口轉發。dsh-lan-pass 插件提供了一個簡單的密碼門禁方案,讓設備在同一個局域網下通過密碼直接訪問本機的 DSH Web UI。

插件簡介

這是一個客戶端插件。它通過密碼驗證機制,允許手機或平板在同一局域網內訪問本機(localhost/127.0.0.1)的 DSH Web UI。由於共享同一後端,會話和輸入輸出與電腦實時同步。插件內置了 crypto.randomUUID polyfill,用於處理 HTTP 非安全上下文。

安裝

dsh plugin --profile web add link:/path/to/lan-pass

配置與啓動

安裝後默認密鑰爲 deepseekyyds。由於該密鑰是公開的,存在安全風險,建議儘快修改。

修改方式有兩種:
1. 設置環境變量 DSH_LAN_PASSWORD。
2. 編輯 %USERPROFILE%\.dsh\.credentials.yaml,添加:

DSH_LAN_PASSWORD: 你的新密鑰

修改後需重啓 dsh。

啓動 DSH Web 服務時,必須指定監聽地址:

dsh web --host 0.0.0.0

同時需要在防火牆中放行 TCP 端口 3080:

netsh advfirewall firewall add rule name="DSH Web 3080" dir=in action=allow protocol=TCP localport=3080

隨後在手機瀏覽器中訪問 http://<電腦局域網IP>:3080,輸入密鑰即可進入 UI。

安全邊界

門禁校驗在服務端完成,Cookie 爲 HMAC 令牌且標記爲 HttpOnly。

但插件未在 webServer 上添加全局中間件。理論上,未通過 UI 認證的設備仍可直接請求 /api/* 接口。
請注意:
1. 僅建議在可信的家庭局域網使用。
2. 密鑰通過明文 HTTP 傳輸,請勿使用重要密碼,建議使用 8 位以上隨機字符串。
3. 跨不可信網絡請使用反向代理方案(如 dsh-mobile-gate + HTTPS)。

許可證

MIT

參考資料

詳見插件目錄:dsh-lan-pass
源碼地址:GitHub

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

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

小夜