安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
反向代理插件,将 DSH Web GUI 以 3301 端口暴露在局域网并加固安全,手机等设备均可访问。
- 将 DSH 代理到 http://<本机IP>:3301,全局域网可访问
- 在直接暴露端口之上增加一层安全防护
- 同时提供适配当前 DSH 的插件形式,独立代理仍受支持
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:Aztech-Lab/dsh-3301安装方式: GitHub · 运行验证通过 (L5)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 |
|---|---|---|---|
| 2a5395 | ✓ | ✓ | ✓ |
2a5395github✓ 运行验证通过 32026-10-19
https://github.com/Aztech-Lab/dsh-3301
✓dsh 0.2.1-rc.2当前2026-10-19L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/Aztech-Lab/dsh-3301(版本未标注)
ID: dsh-3301@2a5395@dsh0.2.1-rc.2 · 档位: l4-sandbox
签发:2026-10-19 · 有效至:2026-10-26
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.42026-10-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • 被测插件工件: github · https://github.com/Aztech-Lab/dsh-3301(版本未标注)
ID: dsh-3301@2a5395@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-17 · 有效至:2026-10-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.22026-10-14L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/Aztech-Lab/dsh-3301(版本未标注)
ID: dsh-3301@2a5395@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-14 · 有效至:2026-10-21
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-3301/)``[](https://www.dsh.so/artifact/dsh-3301/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 中,按「取更严者」→ 总评级 中。
v0.2.0dsh 清单0.2.0git2026-10-210.2.0版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(10 条)
- 警告childProcess · code-exec
lib/gate-auth.js:65const grant = spawnSync("icacls", [dir, "/grant:r", ...principals.map((id) => `${id}:(OI)(CI)F`)], { stdio: "ignore" }); - 警告childProcess · code-exec
lib/gate-auth.js:67const inherit = spawnSync("icacls", [dir, "/inheritance:r"], { stdio: "ignore" }); - 警告childProcess · code-exec
lib/gate-auth.js:69spawnSync("icacls", [dir, "/inheritance:e"], { stdio: "ignore" }); - 警告fsWrite · files
lib/gate-auth.js:56fs.chmodSync(dir, 0o700); - 警告fsWrite · files
lib/gate-auth.js:95fs.writeFileSync(file, `${JSON.stringify({ ...store, version: FILE_VERSION }, null, "\t")}\n`, { mode: 0o600 }); - 警告fsWrite · files
lib/gate-auth.js:98fs.chmodSync(file, 0o600); - 警告fsWrite · files
lib/index.js:92fs.writeFileSync(o.secretFile, secret, { mode: 0o600 }); - 警告netIp · network
tools/check-gate.mjs:16const BASE = `http://127.0.0.1:${PORT}`; - 警告netIp · network
tools/check.mjs:12const BASE = `http://127.0.0.1:${PORT}` - 警告netIp · network
tools/dry-run-plugin.mjs:15const BASE = `http://127.0.0.1:${PORT}`;
展开 4 条审计发现
- medium会话签名密钥来自可预测的共享临时路径,且未校验归属/类型(可伪造 cookie)
lib/index.js:89用于签名 dsh_session cookie 的 HMAC 密钥直接取自共享临时目录中的固定路径(POSIX 上为 /tmp/dsh-3301-secret)。writeFileSync 的 mode 仅在创建时生效,读取路径也不校验文件属主与类型,因此本机低权限用户(或在服务启动前抢先创建该文件名的进程)即可决定签名密钥,进而在 LAN 上伪造合法 dsh_session cookie,无需口令即绕过门禁。
- medium门禁默认在 0.0.0.0 以明文 HTTP 监听(除非恰好存在证书文件),口令与 30 天 cookie 明文传输
lib/index.js:185默认配置监听所有网卡并提供 HTTP;只有证书与私钥文件同时存在时才启用 TLS。在 LAN 上,Basic 凭据与 30 天有效的 dsh_session cookie(无 TLS 时也没有 Secure 标志)均明文传输,同一网络中的中间人可抓取并重放,从而使用该代理,而代理会向上游铸造等同宿主机的 DSH 会话。
- low注入的 bootstrap 强制设置 __DSH_TRANSPORT__.ownsHost=true,让 DSH 把远程 LAN 页面当作宿主机
lib/client-bootstrap.js:32代理返回的每个 text/html 响应都会被注入脚本,使客户端传输层报告 ownsHost:true。DSH 原本只对回环页面授予宿主机级的持久化设置与本地动作(如打开生成的文件);该注入使任何通过认证的 LAN 浏览器都获得同等信任,因此一旦门口令或会话 cookie 泄露,攻击者获得的是宿主机平面能力而不仅是只读 GUI 访问。
- lowBasic 认证的用户名/口令使用非常量时间字符串比较
lib/index.js:128凭据校验使用普通字符串比较,理论上存在(受网络噪声影响较大的)计时侧信道。实际影响有限——每 IP 5 次失败即锁定削弱了反复探测——但 cookie 校验路径已使用 crypto.timingSafeEqual,此处属于不一致而非必要。
整体逻辑可信;中等风险:签名密钥存放在可预测的临时路径、默认明文 HTTP、注入 ownsHost 信任信号;运行时入口 lib/plugin.js 未包含在本次源码中。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-13 · 活跃度:稳定
• 仓库创建: 2026-09-13
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
GitHub: github.com/Aztech-Lab/dsh-3301
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
