dsh-trusted-page:DSH Web 遠程受信訪問插件

DSH Web 客戶端默認根據 hostname 是否爲迴環(localhost / 127.x)來決定是否啓用 Host 設置持久化。當使用遠程域名訪問時,設置鏡像會降級爲 memory,導致 Models 頁面在聯表提供方目錄時報錯。該插件在設置面板提供可視化配置入口,通過配置受信域名,聯動 API 放行與頁面受信判定,修復此問題。

是什麼

這是一個 DSH Web 遠程受信訪問插件,由 liujuntao123 維護。它解決了經反向隧道或自定義域名遠程訪問 DSH Web 時,Models / 設置頁報 settings are unavailable in this browser 的問題。

核心功能

  • 設置面板可視化配置:在設置面板 → 通用 → “遠程受信域名”中,以標籤列表形式增刪受信域名(支持 host 或 host:port)。每個域名標籤會顯示當前頁面的受信狀態(已受信 / 未受信)。
  • 一處配置,兩處聯動:配置寫入後即時生效,無需重啓。
    1. API 放行:域名列表併入 connection.trustedHosts,用於 /api 的 Host/Origin fence 校驗。
    2. 頁面判定:每次渲染 index 時注入一段內聯腳本,檢查 location 命中列表後,聲明 window.__DSH_TRANSPORT__ = { ownsHost: true },從而允許該頁面的設置持久化。
  • 匹配語義與服務端一致:無端口條目匹配任意端口,帶端口條目要求端口精確匹配。支持 IPv6 字面量(如 [::1]:8080)。
  • 輸入容錯:自動剝離 https:// 前綴、路徑及查詢參數,統一轉爲小寫。拒絕非法字符、userinfo(如 user@host)及非數字端口。

安裝

使用官方命令安裝:

dsh plugin --profile web add git+https://github.com/liujuntao123/dsh-trusted-page.git

使用步驟

  1. 在本機打開 DSH Web(http://127.0.0.1:<port>)。
  2. 進入 設置 → 通用 → “遠程受信域名”,輸入你的遠程域名(如 dsh.example.com),回車或點擊“添加”。
  3. 用該域名打開 DSH Web(需確保該域名已路由到你的 DSH 服務),執行頁面強刷(Ctrl+F5)。
  4. 進入 設置 → 模型,提供方目錄應正常加載,不再報錯。

此時,遠程頁面上也能看到對應的設置行(顯示狀態取決於當前頁面是否受信)。

注意事項

  • 權限與路由:本插件只放寬“已認證的設置面板中聲明的域名”的訪問權限,該域名必須已經路由到 DSH 服務(如 Cloudflare Tunnel、nginx 反代、LAN 直連),插件不負責路由配置。
  • 安全模型:
    • 受信域名之外的 /api 請求仍會被 Host/Origin fence 攔截(403)。
    • 頁面本身仍需瀏覽器會話 Cookie 或啓動 token 交換,未授權來源的 index 請求會被攔截(401)。
  • 依賴版本:在 @deepseek-ai/dsh 0.1.5-rc.1 上開發驗證。插件依賴 webserver/index-inject 注入事件與 __DSH_TRANSPORT__.ownsHost 讀取約定,若上游語義改變,插件會安全退化。

相關鏈接

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

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

小夜