安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
在聊天输入框旁添加文档+Markdown按钮,通过文件选择器附加并转换为Markdown格式。
- DeepSeek Harness Web GUI 插件
- 在输入框旁添加文档+Markdown按钮
- 将添加的附件转换为Markdown格式
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:shangfr/dsh-md-picker安装方式: 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 |
|---|---|---|---|---|---|
| ff2259 | ✓ | ✓ | ✓ | ✓ | ✓ |
ff2259github✓ 运行验证通过 132026-10-19
https://github.com/shangfr/dsh-md-picker
✓dsh 0.2.1-rc.2当前2026-10-19L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-26 · 有效至:2026-10-03
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
○dsh 0.1.7-rc.12026-09-23未实测
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.1
- • 被测插件工件: github · https://github.com/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.7-rc.1 · 档位: l4-sandbox
签发:2026-09-23 · 有效至:2026-09-30
查看检查项与证据
该档位在这次扫描中未执行。
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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.6-alpha.1 · 档位: l4-sandbox
签发:2026-09-17 · 有效至:2026-09-24
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.5-rc.22026-09-11L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • 被测插件工件: github · https://github.com/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-11 · 有效至:2026-09-18
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.3-alpha.22026-09-08L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • 被测插件工件: github · https://github.com/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.3-alpha.2 · 档位: l4-sandbox
签发:2026-09-08 · 有效至:2026-09-15
查看检查项与证据
已在加载器目录树中激活(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/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dsh0.1.3-alpha.1 · 档位: l3-fullscan
签发:2026-09-07 · 有效至:2026-09-14
查看检查项与证据
已在加载器目录树中激活(151 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-10-05L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/shangfr/dsh-md-picker(版本未标注)
ID: dsh-md-picker@ff2259@dshunknown · 档位: l4-sandbox
签发:2026-10-05 · 有效至:2026-10-12
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-md-picker/)``[](https://www.dsh.so/artifact/dsh-md-picker/)``[](https://www.dsh.so/artifact/dsh-md-picker/)``[](https://www.dsh.so/artifact/dsh-md-picker/)``[](https://www.dsh.so/artifact/dsh-md-picker/)``[](https://www.dsh.so/artifact/dsh-md-picker/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低,动态审计最高 中,按「取更严者」→ 总评级 中。
v1.3.0dsh 清单1.3.0git2026-10-211.3.0版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(6 条)
- 严重spawnShell · shell
lib/index.js:206child = spawn(cmdLine, { windowsHide: true, shell: true, cwd: path.dirname(input) }) - 警告childProcess · code-exec
lib/index.js:208child = spawn(cmd, ['-y', '@firecrawl/anydoc', input, '-o', output], { - 警告childProcess · code-exec
lib/index.js:225spawn('taskkill', ['/pid', String(child.pid), '/T', '/F'], { windowsHide: true }) - 警告fsWrite · files
lib/index.js:265fs.writeFileSync(tmpIn, bytes) - 警告fsWrite · files
lib/index.js:315try { fs.writeFileSync(gi, GITIGNORE_CONTENT, 'utf8') } catch {} - 警告fsWrite · files
lib/index.js:329fs.writeFileSync(target, data, { encoding, flag: 'wx' })
展开 5 条审计发现
- medium可选访问令牌经未鉴权的 client.js 路由明文泄露
lib/index.js:472当运维配置 config.token 用于 LAN 加固时,任何能访问 GUI 源的客户端只需 GET /dsh-md-picker/client.js 即可读到该令牌,再用它作为 X-Dsh-Md-Picker-Token 通过校验;因此该鉴权对网络攻击者形同虚设,仍可向 agent 工作区写文件。
- mediumstore/convert 默认无鉴权,可向客户端指定工作区写入 agent 可读内容
lib/index.js:446令牌默认为空时,任何能访问 Web 服务的客户端(如绑定到 LAN 的实例)都可向 /store /convert 提交任意字节内容,写入 <workspace>/md-picker-attachments,且目标工作区由调用方 X-Session-Id 决定(否则取最近使用)。这些文件正是 agent 之后用文件工具读取的内容,因此构成对 agent 上下文的未鉴权内容注入,而不只是写盘。
- medium转换时从 npm 拉取并执行未固定版本的第三方包
lib/index.js:205每次转换都以 DSH 宿主权限执行 `npx -y @firecrawl/anydoc`。既无版本固定也无完整性校验,一旦 npm 包被投毒或重新发布(或发生命名/解析问题),一次普通上传即可导致宿主机任意代码执行,而且被处理的文档本身就是攻击者可影响的输入。
- low配置令牌未转义即拼接进下发的 JS 字符串字面量
lib/index.js:63令牌被原样替换进 lib/client.js 中的 `var TOKEN = "__DMP_TOKEN__"`,而该脚本运行在 DSH GUI 源下。含引号、反斜杠或换行的令牌会突破字符串字面量,把运维配置变成 harness 源上的脚本注入。由于取值来自宿主配置,这属于加固缺陷而非攻击者可触发路径。
- lowWindows 转换命令以字符串拼接交由 shell 执行,安全性依赖 mkdtemp 路径不含 cmd 元字符
lib/index.js:206静态扫描的 shell 执行告警目前不可被攻击者触达:输入/输出是 mkdtemp 新建目录下的固定名(input.<ext>/output.md),扩展名限 [a-zA-Z0-9]{1,10},用户文件名不进入命令行。剩余假设:os.tmpdir() 前缀只做双引号包裹,若临时路径含 '"'、'%' 或结尾反斜杠会被 cmd.exe 重新解析。POSIX 下超时仅杀掉 npx 进程,不清理其子进程。
无严重/高危问题;真实风险为:可选令牌经未鉴权路由明文下发、写接口默认无鉴权直写 agent 工作区、以及未固定版本的 npx 远程执行。
口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-04 · 活跃度:稳定
• 仓库创建: 2026-09-04
• 星标: ★ 0 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
GitHub: github.com/shangfr/dsh-md-picker
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
