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 与插件自身的防暴力破解机制,可以有效降低安全风险。

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

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

小夜