@liushQAQ/dsh-anywhere avatar

@liushQAQ/dsh-anywhere

专为 DSH iOS App 与多终端协同打造:多设备同时在线无缝切换、实时同屏收发、锁屏秒级自愈(Fast-Resume),支持局域网 3082/3083 隔离与三层通用稳定外网通道。

Plugin终端 / Shell
验证
L5 · 运行已测
通过
风险
低风险
健康
活跃
信任
金

安装验证:运行验证通过 (L5) · 验证于 dsh 0.2.1-rc.2 · 验证日期 安装验证详情 →

安装验证徽章 dsh 0.2.1-rc.2

功能介绍

专为 DSH iOS App 与多终端协同打造:多设备同时在线无缝切换、实时同屏收发、锁屏秒级自愈(Fast-Resume),支持局域网 3082/3083 隔离与三层通用稳定外网通道。

安装

dsh plugin --profile web add github:liushQAQ/dsh-anywhere
已验证

安装方式: GitHub · 运行验证通过 (L5)

验证与兼容性

按插件版本分组:每张卡是该插件版本实测过的 dsh 版本与安装兼容结论(L5 优先)。只列真测过的组合——未列出 = 未实测,不推定兼容。L1–L3 为插件级静态档(与 dsh 版本无关,各 dsh 行同值):在行内「验证等级」格里与 L4/L5 并列显示、标注「静态」,证据体为插件级单份、随行内「查看检查项与证据」出现,不在各版本重复存储。

External credentials(插件级):未检测到

原插件兼容声明来自 package.json · peerDependencies
作者未声明 dsh 版本要求

○ 作者未声明 dsh 版本要求 —— 安装不会因版本被拒。

安装兼容矩阵(速览 · 行 = 插件版本〔最近 5〕,列 = dsh 版本〔最近 5〕)
结论一览 → 证据在下方分版本卡片
插件版本 \ dshdsh 0.2.1-rc.2
v1.0.8·
安装兼容实测(按插件版本,组内按 dsh 版本)
图例:✓ L5 运行验证通过○ 生态插件◼ 生态应用✗ 失败
v1.0.8github2026-10-21

https://github.com/liushQAQ/dsh-anywhere

该版本无运行时安装实测(仅静态扫描)——兼容性未知,不推定。

仅展示最近 3 个已发布版本;源码快照(commit hash)组、未标注工件组与更早版本不展示——全量档案保留在数据层(插件无任何已发布版本时,快照/未标注组才照常展示)。

作者徽章

将官方徽章嵌入你的 README,展示插件的安全与安装检测状态:

dsh.so risk
`[![dsh.so risk](https://www.dsh.so/badge/dsh-anywhere-2.svg)](https://www.dsh.so/artifact/dsh-anywhere-2/)`
dsh 0.2.1-rc.2 安装验证已通过
`[![dsh.so install · dsh 0.2.1-rc.2](https://www.dsh.so/badge/install/dsh-anywhere-2@0.2.1-rc.2.svg)](https://www.dsh.so/artifact/dsh-anywhere-2/)`

安全报告

两层自动化检查,都不是人工审核:静态扫描(逐插件规则判定)与模型驱动的动态安全审计(只覆盖静态判定 warn 及以上的插件子集,不执行插件代码)。

dsh-anywhere-2自动审查 · 每日更新

静态扫描 低,动态审计最高 中,按「取更严者」→ 总评级 中。

静态 低→动态 中→总评级 中
0 严重·0 高
中总评级 · 中
1静态扫描 · vet 主判vet AST 静态分析(npm 发布物或 git 源码)
插件版本v1.0.9dsh 清单
扫描版本v1.0.9git2026-10-21
当前版本v1.0.9版本一致
vet 判定clean · git

vet 为 AST 静态扫描(npm 发布物或 git 源码)。

静态发现(5 条)
  • 警告netIp · networkclient/anywhere-locales.js:94

    'namedHow': '在 Cloudflare Zero Trust → Networks → Tunnels 创建隧道并复制 Token;把域名的 Service 指向 http://127.0.0.1:3081(代理端口)。地址固定,重启不再变化。',

  • 警告netIp · networkclient/anywhere-locales.js:200

    'namedHow': 'Create a tunnel in Cloudflare Zero Trust → Networks → Tunnels and copy the token; point the hostname\'s Service at http://127.0

  • 警告childProcess · code-execlib/restart.js:69

    ' const child = spawn(file, args, { cwd, detached: true, stdio: ["ignore", out, err], env: process.env })',

  • 警告fsWrite · fileslib/restart.js:72

    ' try { fs.appendFileSync(logErr, "restart helper failed: " + (ex && ex.message) + "\\n") } catch {}',

  • 警告shellExec · shelllib/service.mjs:75

    execFile('ipconfig.exe', { timeout: 3000 }, (err, stdout) => {

2模型读脱敏源码上下文 · 不执行插件代码
最高等级中
并入后总评级 中
审计时间2026-10-19
发现计数0 严重·0 高另有 1 条中 / 2 条低未展开
展开 3 条审计发现
  • medium网络可达的 RPC 允许已认证客户端读取主机任意文件client/api.js:20

    client/host 共享契约暴露了 fileRead 端点,其用途就是把主机文件正文返回给浏览器。client/mobile/fileGuard.ts 直接把从 DOM 文本里抓到的路径传入(`const filePath = (el.textContent ?? '').trim(); const res = await readFile(filePath)`),即任意绝对路径字符串过线。由于该页面还会经 0.0.0.0:3083 局域网代理与公网隧道发布,任何通过 PIN 校验的人(或用户关闭局域网密码后同网段任意设备)都可读取如 ~/.dsh/dsh-anywhere/settings.json(含 Tunnel Token)或 SSH 私钥。宿主处理逻辑在未采集的 lib/index.js 中,无法确认是否存在路径白名单。

  • low远程可触发的宿主重启:派生 detached node 辅助进程并 SIGTERM 当前进程lib/restart.js:98

    restartHost() 用 process.argv 重建启动命令,detached 派生 `node -e <生成脚本>`,500ms 后杀掉自身 PID;暴露的 anywhere.restart RPC 可被任何通过 PIN 校验的远端客户端调用。生成脚本只嵌入经 JSON.stringify 的可信 argv/日志路径,不存在命令注入,但远端可反复重启宿主(可用性影响),若辅助进程失败 DSH 会一直起不来。

  • low代理默认监听 0.0.0.0 且局域网访问默认开启lib/service.mjs:180

    面向可执行代码的 DSH 界面的代理绑定所有网卡,且局域网访问默认开启(`getLanEnabled = () => true`,settings.lanEnabled !== false),同网段设备开箱即可访问;唯一屏障是未采集的 lib/proxy.mjs 中的 PIN 校验,其强度(爆破防护、时序安全、lanAccessEnabled() 为 false 时是否仍强制)无法验证。

插件把 DSH Web 经代理与隧道暴露到局域网/公网:主要风险是网络可达的 fileRead 读取主机文件,且鉴权与代理实现未纳入本次源码。

口径:动态审计只会把风险往严重里判,不会把风险降下来(只升不降,不构成豁免);模型判错时由人工复核撤回,撤回后回到静态判定。合并判定 = 两层中更严的那一个。

免责声明:静态扫描与动态安全审计都是自动化分析,不构成安全保证。安装前请自行审查。

活跃度

最近提交 2026-10-21 · 活跃度:活跃

• 仓库创建: 2026-10-12

• 星标: ★ 0 · 复刻: 0

• 健康度: 活跃 — 近 30 天有提交

来源

GitHub: github.com/liushQAQ/dsh-anywhere

这页有帮助吗?