D

dsh-himarket

dsh-himarket

v0.2.1 市场与管理 可执行外部程序含混淆或编码代码写入文件
认证 L0已扫描 ✓健康 S/95周下载 53

HiMarket bridge for DeepSeek Harness: sync subscribed MCP servers and install published Skills into DSH, with a beginner-friendly settings panel and chat tools

该插件尚未翻译,显示作者原文。

分类
market
发布
2026-09-23
版本
v0.2.1

检测报告

关注度高。命中了不少能力模式,其中可能有需要留意的。逐条看下面的清单。
1高关注4需留意4一般15未命中
高关注需留意一般

能力清单

  • 可执行外部程序spawns-processes高关注2 处命中
    • lib/publish.js:18import { execFile } from 'node:child_process';
    • lib/skill.js:15import { execFile } from 'node:child_process';
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 含混淆或编码代码obfuscated-code需留意31 处命中
    • lib/client.js:51subtitle: "\u70B9\u300C\u4E00\u952E\u767B\u5F55\u300D\u7528\u516C\u53F8\u8D26\u53F7\u767B\u5F55\uFF0C\u5C31\u80FD\u5728\…
    • lib/client.js:68loginPending: "\u8BF7\u5728\u6D4F\u89C8\u5668\u4E2D\u5B8C\u6210\u767B\u5F55\uFF0C\u5B8C\u6210\u540E\u672C\u9875\u4F1A\u8…
    • lib/client.js:75debugBadge: "\u26A0\uFE0F \u8C03\u8BD5\u6A21\u5F0F\u5DF2\u5F00\u542F\uFF08\u53EF\u624B\u5DE5\u586B\u8D26\u53F7\u5BC6\u78…
    • lib/client.js:76debugHint: "\u7814\u53D1/\u8FD0\u7EF4\u8C03\u8BD5\u7528\u3002\u6B63\u5F0F\u4F7F\u7528\u8BF7\u5173\u95ED\uFF1A\u4E0D\u898…
    • 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
  • 写入文件writes-files需留意17 处命中
    • lib/preset.js:52await mkdir(destDir, { recursive: true });
    • lib/preset.js:63await copyFile(src, dest);
    • lib/preset.js:85await mkdir(root, { recursive: true });
    • lib/preset.js:97await mkdir(dest, { recursive: true });
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 发起网络请求network需留意5 处命中
    • lib/client.js:251return fetch(path, body === void 0 ? {} : { method: "POST", headers: { "content-type": "application/json" }, body: JSON.…
    • lib/index.js:120const res = await fetch(`${gw.replace(/\/+$/u, '')}/products/sources?ids=${encodeURIComponent(ids.join(','))}`);
    • lib/index.js:260const loginRes = await fetch(`${gw.replace(/\/+$/u, '')}/auth/login`, {
    • lib/index.js:269const pubRes = await fetch(`${gw.replace(/\/+$/u, '')}/publish`, {
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • R013 清单可疑manifest-obfuscation需留意1 处命中
    • 安装脚本: prepare
    • 清单被刻意写乱时,加载行为会难以预测。看原文而不是看渲染结果。
  • 读取文件reads-files一般25 处命中
    • lib/index.js:301const entries = await readdir(root, { withFileTypes: true }).catch(() => []);
    • lib/preset.js:40await readFile(join(unpackDir, PRESET_COMPOSITION), 'utf8');
    • lib/preset.js:53const entries = await readdir(srcDir, { withFileTypes: true });
    • lib/preset.js:87const entries = await readdir(unpackDir, { withFileTypes: true });
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
  • 接触凭据或密钥credentials一般15 处命中
    • lib/himarket-client.js:43this.password = opts.password;
    • lib/himarket-client.js:68body: JSON.stringify({ username: this.username, password: this.password }),
    • lib/himarket-client.js:71const token = wrapped.access_token;
    • lib/himarket-client.js:124const token = wrapped.access_token;
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 读取环境变量reads-env一般8 处命中
    • lib/domain.js:48const v = process.env[name];
    • lib/preset.js:31return process.env.DSH_HOME?.trim() || join(homedir(), '.dsh');
    • lib/provenance.js:51export function harnessHome(env = process.env) {
    • lib/publish.js:30return process.env.DSH_HOME?.trim() || join(homedir(), '.dsh');
    • 环境变量里常混有密钥。看它是否把整个 env 都读走。
  • 动态加载模块dynamic-import一般4 处命中
    • lib/index.js:292await import('node:fs/promises').then((m) => m.rm(stageRoot, { recursive: true, force: true })).catch(() => { });
    • lib/index.js:300const { readdir } = await import('node:fs/promises');
    • lib/resolver.js:26return (await import(resolveOfficial(specifier, baseUrl)));
    • README.md:144- **MCP 复用官方客户端**:不重造 MCP 客户端,运行时经 `createRequire(ctx.baseUrl)` + 动态 `import()` 解析 `@deepseek-ai/dsh-mcp-client`,用 Cordi…
    • 动态导入本身无害,但会让依赖关系难以静态审阅。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注2
含混淆或编码代码obfuscated-code需留意31
写入文件writes-files需留意17
发起网络请求network需留意5
R013 清单可疑manifest-obfuscation需留意1
读取文件reads-files一般25
接触凭据或密钥credentials一般15
读取环境变量reads-env一般8
动态加载模块dynamic-import一般4

这份报告的口径

扫描读的是包里的源码,全程不执行第三方代码。 本次读了 28 个文件,扫描于 2026-10-15。 命中次数只说明源码里出现过这类调用,不说明行为好坏——一个插件读写文件 500 次和 1 次 都会被记为「读取文件」。这是能力清单,不是信任评分,也不是安全结论: 没扫出来的能力可能只是写法没被规则覆盖。

依赖安全公告

已查询这个插件声明的全部依赖,没有匹配到已公开的安全公告。(含 DSH 框架包在内的 @deepseek-ai/* 不作查询——那是运行时自己的问题,不是插件的。)

← 返回全部插件