安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
RPA式定时网页自动化:录制浏览器操作,LLM生成Python+Playwright代码,计划任务并发送运行记录和邮件通知。
- 录制浏览器操作并自动生成Python+Playwright脚本
- 支持一次性或循环定时运行并记录执行记录
- 每次运行后发送邮件通知结果
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:kumanana66/dsh-automation安装方式: 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 | dsh 0.2.0-rc.2 | dsh 0.2.0-rc.1 |
|---|---|---|---|---|---|
| 70dea5 | ✓ | ✓ | ✓ | ✓ | ✓ |
70dea5github✓ 运行验证通过 152026-10-19
https://github.com/kumanana66/dsh-automation
✓dsh 0.2.1-rc.2当前2026-10-19L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@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/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.2.1-alpha.4 · 档位: l4-sandbox
签发:2026-10-17 · 有效至:2026-10-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.1-alpha.22026-10-11L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.2.1-alpha.2 · 档位: l4-sandbox
签发:2026-10-11 · 有效至:2026-10-18
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.22026-10-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-09 · 有效至:2026-10-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.2.0-rc.12026-09-30L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.2.0-rc.1 · 档位: l4-sandbox
签发:2026-09-30 · 有效至:2026-10-07
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.22026-09-26L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-26 · 有效至:2026-10-03
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-24未实测
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-24 · 有效至:2026-10-01
查看检查项与证据
该档位在这次扫描中未执行。
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-alpha.22026-09-23L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-alpha.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.7-alpha.2 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.22026-09-20L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.6-alpha.2 · 档位: l3-fullscan
签发:2026-09-20 · 有效至:2026-09-27
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.6-alpha.12026-09-17L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.5-rc.22026-09-12L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-12 · 有效至:2026-09-19
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.22026-09-09L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-09 · 有效至:2026-09-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.12026-09-07L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.3-alpha.1 · 档位: l3-fullscan
签发:2026-09-07 · 有效至:2026-09-14
查看检查项与证据
已在加载器目录树中激活(151 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.2-rc.12026-09-05L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.2-rc.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation#70dea5
ID: dsh-automation-3@70dea5@dsh0.1.2-rc.1 · 档位: l3-fullscan
签发:2026-09-05 · 有效至:2026-09-12
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.2-alpha.12026-09-06L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.2-alpha.1
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dsh0.1.2-alpha.1 · 档位: l3-fullscan
签发:2026-09-06 · 有效至:2026-09-13
查看检查项与证据
已在加载器目录树中激活(149 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-10-05L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/kumanana66/dsh-automation(版本未标注)
ID: dsh-automation-3@70dea5@dshunknown · 档位: l4-sandbox
签发:2026-10-05 · 有效至:2026-10-12
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)``[](https://www.dsh.so/artifact/dsh-automation-3/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 高,按「取更严者」→ 总评级 高。
v0.1.0dsh 清单0.1.0git2026-10-210.1.0版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(12 条)
- 严重shellExec · shell
lib/storage.js:316exec(ps, { windowsHide: true, maxBuffer: 1024 }, () => {}); - 警告childProcess · code-exec
lib/asr.js:15const r = spawnSync(python, ['-c', 'import faster_whisper; print("OK")'], { - 警告childProcess · code-exec
lib/asr.js:65const r = spawnSync(python, ['-c', - 警告childProcess · code-exec
lib/asr.js:99const child = spawn(cmd, args, { shell: false, windowsHide: true }); - 警告childProcess · code-exec
lib/recorder.js:24const r = spawnSync('powershell.exe', ['-NoProfile', '-NonInteractive', '-Command', psCmd], - 警告childProcess · code-exec
lib/recorder.js:99probe = spawnSync(python, ['-c', probeCode], { timeout: 20000, encoding: 'utf8' }); - 警告childProcess · code-exec
lib/recorder.js:114const child = spawn( - 警告childProcess · code-exec
lib/routes.js:306const child = spawn(cmd, args, { env: { ...process.env, ...(env || {}) }, shell: false, windowsHide: true }); - 警告childProcess · code-exec
lib/routes.js:334const child = spawn(cmd, args, { env: { ...process.env, ...(env || {}) }, shell: false, windowsHide: true }); - 警告childProcess · code-exec
lib/runner.js:76child = spawn(python, [codeFile], { env, cwd: taskDir, windowsHide: true }); - 警告childProcess · code-exec
lib/runner.js:139try { child = spawn(python, [codeFile], { env, cwd: taskDir, windowsHide: true }); } - 警告childProcess · code-exec
lib/storage.js:287const child = spawn('cmd.exe', ['/c', 'start', '', 'explorer.exe', target], { detached: true, stdio: 'ignore' });
展开 3 条审计发现
- highHTTP 路由直接执行请求体中的任意 Python 代码
lib/routes.js:658POST /dsh-automation/test-run-code 直接把请求体中的 code 交给 runner.testRun,后者写入 task.py 并执行 `spawn(python, [codeFile], ...)`(lib/runner.js:76)。同样可经 POST /dsh-automation/tasks(line 132)或 PUT /tasks/:id 再 POST /tasks/:id/run(line 173)触发,因此任何能访问 harness web 服务的攻击者都能以该用户权限执行任意操作系统命令;任务会持久化到 tasks.json,且 trigger.enabled 为真时调度器会自动重跑,构成持久化后门。此外 /dsh-automation/config 可把 settings.python 改成任意可执行文件,随后被 pip/playwright/faster-whisper 安装路由当作解释器启动。插件在挂载这些路由前不做任何调用方身份校验。
- medium路径遍历:/generate/requirement 未校验 id 即拼接 recordingsDir
lib/routes.js:555id 未做任何校验即参与路径拼接,传入 `../../..` 之类即可逃出 recordingsDir:处理程序会读取磁盘上任意位置的 transcript.txt 并把内容送入 LLM 提示词(lib/routes.js:579);若该目录下不存在 transcript.txt,则把目录中第一个 audio.webm/audio.ogg/audio.mp4/audio.wav/audio.m4a 交给 `python -m faster_whisper`,并把 transcript.txt 写回该目录。同文件的 /dsh-automation/asr/transcribe-chunk 路由对同样的 id 做了 /^[A-Za-z0-9_-]+$/ 白名单与 resolve+startsWith 越权检查,可见此处属遗漏。
- lowSMTP 密码明文保存在 settings.json
lib/storage.js:68POST /dsh-automation/config 把 body.smtp(含 pass)交给 saveSettings,合并进 settings.smtp 后整体以明文 JSON 写入 <插件数据目录>/settings.json。任何能读该文件的本地用户/进程都能拿到邮箱凭据;GET /config(lib/routes.js:74)已刻意不返回 pass,未受保护的仅是磁盘上的副本。
插件 HTTP 路由可执行调用方提供的 Python 代码,且未校验 id 直接拼路径;其余进程与文件操作防护较好。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-01 · 活跃度:稳定
• 仓库创建: 2026-09-01
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
