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。

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

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

小夜