安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →
功能介绍AI
DSH 插件:把收藏的链接(标题/简介/图标/标签/正文)保存为本地 Markdown 收藏夹,并提供 Web 侧栏页面。
- 将收藏链接持久化为本地 Markdown 文件
- 每条链接保存标题、简介、图标、标签与正文
- 附带 Web 侧栏页面用于浏览收藏
能力标签为 AI 推断或 README 规则抽取(见角标),词表受限、未经安装验证;AI = 推断,README = 原文关键词。
安装
dsh plugin --profile web add github:suomir1995/dsh-link-collect安装方式: GitHub · 运行验证通过 (L5)
验证与兼容性
按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。
External credentials(插件级):未检测到
依据:1 条要求、覆盖 1 个 @deepseek-ai/dsh-* 子包。 看原始区间
>=0.0.1-rc.1 <0.2.0-0 || >=0.1.0-rc.2 <0.2.0-0 || >=0.1.1-rc.1 <0.2.0-0 || >=0.1.2-alpha.2 <0.2.0-0 || >=0.1.3-alpha.2 <0.2.0-0 || >=0.1.5-alpha.1 <0.2.0-0 ×1
✗ 当前 dsh 0.2.1-rc.2 不在支持范围内 —— 官方安装门控会直接拒绝装(incompatible-version)。
强行安装需精确豁免一次:dsh plugin allow-version dsh-link-collect@0.1.1 0.2.1-rc.2(豁免记在本机 profile,本站不假定你是否已豁免)
能否正常运行是另一件事 → 见下方实测矩阵(L1–L5)。
| 插件版本 \ dsh | dsh 0.2.1-rc.2 当前 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.1.7-rc.2 | dsh 0.1.7-rc.1 |
|---|---|---|---|---|---|
| b1818e | ✓ | ✓ | ✓ | ✓ | ○ |
b1818egithub✓ 运行验证通过 102026-10-18
https://github.com/suomir1995/dsh-link-collect
✓dsh 0.2.1-rc.2当前2026-10-18L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • 被测插件工件: github · https://github.com/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dsh0.2.1-rc.2 · 档位: l3-fullscan
签发:2026-10-18 · 有效至:2026-10-25
查看检查项与证据
已在加载器目录树中激活(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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dsh0.2.0-rc.2 · 档位: l4-sandbox
签发:2026-10-09 · 有效至:2026-10-16
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.7-rc.22026-09-25L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • 被测插件工件: github · https://github.com/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dsh0.1.7-rc.2 · 档位: l4-sandbox
签发:2026-09-25 · 有效至:2026-10-02
查看检查项与证据
已在加载器目录树中激活(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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@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/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dsh0.1.5-rc.2 · 档位: l4-sandbox
签发:2026-09-12 · 有效至:2026-09-19
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓dsh 0.1.5-rc.12026-09-10L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.1
- • 被测插件工件: github · https://github.com/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dsh0.1.5-rc.1 · 档位: l4-sandbox
签发:2026-09-10 · 有效至:2026-09-17
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
✓版本史前2026-09-30L5 · 运行验证通过
- • Node.js: v24.14.0
- • DSH: unknown
- • 被测插件工件: github · https://github.com/suomir1995/dsh-link-collect(版本未标注)
ID: dsh-link-collect@b1818e@dshunknown · 档位: l3-fullscan
签发:2026-09-30 · 有效至:2026-10-07
查看检查项与证据
已在加载器目录树中激活(150 个条目)
L1–L3 为插件级静态结论(基础门槛,全 dsh 版本相同):证据为插件级单份,不在各版本重复存储。
作者徽章
将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:
`[](https://www.dsh.so/artifact/dsh-link-collect/)``[](https://www.dsh.so/artifact/dsh-link-collect/)``[](https://www.dsh.so/artifact/dsh-link-collect/)``[](https://www.dsh.so/artifact/dsh-link-collect/)``[](https://www.dsh.so/artifact/dsh-link-collect/)``[](https://www.dsh.so/artifact/dsh-link-collect/)`安全报告
两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。
静态扫描 低;动态审计最高 中(有结论时以动态为准)→ 总评级 中。
v0.1.1dsh 清单0.1.1git2026-10-250.1.1版本一致clean · gitvet 为 AST 静态扫描(npm 发布物或 git 源码)。
静态发现(5 条)
- 警告netIp · network
scripts/loader-boot.mjs:100const base = `http://127.0.0.1:${port}` - 警告netIp · network
scripts/loader-boot.mjs:164const meta = await fetch(`${base}/api/link-collect/meta?url=${encodeURIComponent('http://127.0.0.1:9/x')}`, { headers: { host: hostHeader } - 警告newFunction · code-exec
scripts/smoke-client.mjs:63const fn = new Function('require', 'module', 'exports', source) - 警告netIp · network
scripts/smoke-host.mjs:163const iconResult = await fetchFaviconForUrl(cfg, 'http://127.0.0.1:9/no-favicon') - 警告netIp · network
scripts/smoke-host.mjs:166const offlineAdd = await tools2.add.execute({ folder: '自动化', url: 'http://127.0.0.1:9/page', title: '离线站', fetchIcon: true }, {})
展开 3 条审计发现
- medium回环路由缺少 Origin/CSRF 校验且不校验 Content-Type,任意网页都能修改收藏库
index.js:1291该守卫只检查套接字地址与 Host 头。恶意页面用 mode:'no-cors' 加 text/plain 请求体访问 http://127.0.0.1:<port>/api/link-collect/link/add(或 folder/create、folder/rename、link/update)可同时通过两项校验,而 readJsonBody 不校验 Content-Type 就直接 JSON.parse。因此用户访问的任意网站都能创建/重命名收藏夹、添加或修改链接,并触发对外抓取图标。
- mediumprobePage/attemptFavicon 可抓取任意 http(s) 地址且不过滤内网(盲 SSRF)
index.js:768/api/link-collect/meta?url=... 路由(以及带 fetchIcon 的 link/add 和 link_collect_add 工具)会把任意 http/https 地址交给 probePage/attemptFavicon,它们跟随重定向访问内网主机、本机管理端口或云元数据地址。结合缺失的 CSRF 校验,跨站 GET 即可让宿主扫描本地网络(响应无法被跨源读取,属盲 SSRF);形似图片的图标字节还会被持久化到库的 icons/ 目录。
- low远端 SVG 图标被保存并以 image/svg+xml 从 harness 源回传
index.js:1611attemptFavicon 对以 '<svg' 开头的内容判定为 svg 扩展名并写入 icons/,/api/link-collect/icon 以 image/svg+xml 回传且无 CSP 或 Content-Disposition。作为 <img> 加载无害,但若用户直接访问该图标 URL(文件名是 url 的 sha1 前缀,提供链接的攻击者可算出),SVG 内的脚本就会在 harness 源上执行。
路由虽有回环地址与 Host 校验、文件写入也已净化,但 POST 路由缺少 Origin/CSRF 校验,/meta 可抓取任意 URL(盲 SSRF);存储远端 SVG 另带来轻微 XSS 风险。
口径(2026-10-24):有动态审计结论时以动态结论为准(可能上调也可能下调);无结论时以静态/vet 融合档为准。动态审计永不写豁免表(豁免只能人工三筛手写);模型判错时由人工复核撤回,撤回后档位回到静态/vet。
免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。
活跃度
最近提交 2026-09-11 · 活跃度:稳定
• 仓库创建: 2026-09-10
• 星标: ★ 1 · 复刻: 0
• 健康度: 稳定 — 近 90 天有提交
来源
作者 README
GitHub 原文 ↗展示作者仓库中的原始 README 内容,实时抓取、未做改写;优先加载中文版(README.zh-CN.md 等),无中文版时回退英文。
