dsh-auth-gate:DeepSeek Harness 的認證門禁插件

前言

DeepSeek Harness (DSH) 採用插件化架構,Web UI 默認未內置認證機制。若直接將 Web UI 暴露在局域網或公網,存在安全風險。dsh-auth-gate 插件在 DSH Web UI 前置了一道登錄門禁,提供 SVG 圖形驗證碼與防暴力破解能力,並通過 Nginx auth_request 接口實現強制校驗。

插件簡介

  • 名稱:dsh-auth-gate
  • 定位:DSH Web UI 的認證門禁插件,提供 SVG 圖形驗證碼與防暴力破解保護。
  • 所有者:jiang539
  • 類別:admin-security

核心功能

  • SVG 圖形驗證碼:一次性使用,自動剔除易混淆字符,支持按 IP 限流。
  • 防暴力破解:支持按 IP 和按賬號雙維度限流。同一 IP 連續失敗達到閾值鎖定 IP;任一賬號憑據連續失敗達到閾值鎖定該賬號(IP 輪換無效)。
  • 會話管理:支持滑動過期機制,Token 在每次校驗時順延有效期。
  • 會話綁定 IP(可選):將 Token 綁定登錄時的客戶端 IP,在其他 IP 使用時立即失效。
  • 單點登錄:同一賬號同時只允許一個會話,新登錄會使舊會話失效。
  • 密碼安全:使用 bcrypt 哈希存儲(權限 0600),密碼文件僅限所有者讀寫。
  • Nginx auth_request 支持:通過 Nginx 層前置認證,未登錄請求在到達 DSH 前被攔截。

安裝與啓用

通過插件管理命令安裝:

dsh plugin --profile web add dsh-auth-gate

插件安裝後,DSH 啓動時會自動註冊 /auth/* 路由。DSH 默認只監聽 127.0.0.1,需通過 Nginx 等反向代理前置訪問。

注意:默認憑據爲公開值(賬號 admin,密碼 admin123),首次登錄必須強制修改賬號名與密碼。

典型用法

插件提供標準的 /auth API 接口,可配合 curl 或 Nginx 使用:

# 獲取驗證碼
curl http://127.0.0.1:3080/auth/captcha

# 登錄
curl -X POST http://127.0.0.1:3080/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"your-password","captcha":"abcd","uuid":"<uuid>"}'

# 校驗 Token
curl -H "Authorization: Bearer <token>" http://127.0.0.1:3080/auth/verify

安全與注意事項

  • 默認憑據:首次登錄前使用默認賬號 admin / admin123,登錄後必須修改。
  • 本地監聽:DSH Web UI 僅監聽 127.0.0.1,務必通過 Nginx 的 auth_request 進行前置認證,否則插件無法攔截請求。
  • 權限管理:密碼文件權限嚴格限制爲 0600。
  • 開發環境:devCaptchaText 配置項僅限開發環境使用,生產環境不可開啓。
  • 網絡傳輸:局域網 HTTP 部署不安全,建議公網部署使用 HTTPS。

總結

dsh-auth-gate 爲 DSH Web UI 提供了完整的認證與防護能力,適合需要在公網或不可信網絡中部署 DeepSeek Harness 的場景。通過 Nginx auth_request 與插件自身的防暴力破解機制,可以有效降低安全風險。

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

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

小夜