dsh-webui-auth

@Yuuz12 · 安全
检测未发现问题无安装脚本

为DSH WebUI提供四层强制登录认证(资源/插件/接口/WebSocket),服务端会话+HttpOnly Cookie,不改核心包源码,适合暴露给多人或公网访问的部署。

v0.3.0版本
GitHub 源码安装安装方式
2026-08-18最近更新
7Star
dsh plugin --profile web add github:Yuuz12/dsh-webui-auth查看仓库

插件介绍

根据仓库资料整理 · commit 8efcd86

主要功能

  • 在HTTP/传输层做四层强制登录门禁:WebUI资源、插件bundle、/api接口、WebSocket全部拦截未认证请求
  • 服务端持久化会话(sessions.jsonl),配合HttpOnly+SameSite=Lax Cookie,JS无法读取,重启DSH不掉线
  • fail-closed设计:路由包装不完整时拒绝启用认证,避免"开了登录却裸奔"
  • 首次启用需要每次启动生成的setup token,防止在未配置窗口期被他人抢先注册账号
  • 登录限流(按IP每分钟5次)、scrypt密码哈希、审计日志(IP经HMAC假名化)
  • 通过运行时包装路由实现,不修改任何DSH核心包源码,DSH升级后自动重做包装

适合什么时候用

  • 将DSH WebUI通过反向代理或局域网暴露给多人访问,需要登录门禁防止未授权访问
  • 需要对WebUI登录、凭据修改等安全事件留存审计日志以便事后排查
  • 希望认证方案不侵入DSH核心包、可随DSH升级平滑兼容

安装后会多出什么

界面独立登录页(/dsh-webui-auth/login) · 设置 → 身份认证 面板(创建/修改密码、会话有效期、最近登录记录)
命令npx @deepseek-ai/dsh plugin --profile web add dsh-webui-authnode index.js audit --limit N

使用前需要

  • 反代或局域网(非回环Host)部署下,需在dsh配置的 client-connection.trustedHosts 中加入对外域名,否则WebSocket登录后仍会被拒绝升级
  • 安装需要机器上有pnpm(可通过 corepack enable pnpm 启用)
  • 作为持久化插件运行于DSH宿主环境,需能写入运行时数据目录(默认 ~/.dsh/dsh-webui-auth/)存储凭据、会话与审计日志

在 GitHub 阅读完整 README

权限与能力

安装后它能碰到什么
不覆盖任何 dsh-base 宿主行:不接管沙箱、审批、凭据等能力。
宿主能力
浏览器 UI环境变量文件系统外部网络宿主子进程
能力是范围不是结论:很多能力是功能所需。

基本信息

仓库Yuuz12/dsh-webui-auth安装方式GitHub 源码安装(需 allowBuilds)安装提示源码安装会在你的机器上执行 prepare 构建,需要 allowBuilds 授权;建议用 github:Yuuz12/dsh-webui-auth#8efcd86 锁定本次检测的 commit。收录日期2026-08-14固定 commit8efcd867a2cd · 2026-08-18
dsh plugin --profile web add github:Yuuz12/dsh-webui-auth