C

ccs-balance

github.com/kikomaotu/ccs-balance

v1.0.3 模型与账号 可执行外部程序发起网络请求写入文件

DSH 插件:同步 cc-switch 各 provider 的余额,并统计 DSH 会话的 token 用量与花费。

作者原文(英文)

DSH plugin: sync cc-switch provider balances and track token usage & cost by day/month/total with relay-aware currency settings.

中文简介由 DeepSeek 模型翻译,仅供参考。

dshds-harnesscc-switchbalanceusagetokencost
分类
model
发布
2026-08-26
版本
v1.0.3

检测报告

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

能力清单

  • 可执行外部程序spawns-processes高关注1 处命中
    • lib/index.js:2import { spawn } from "node:child_process";
    • 看它调用哪些程序。调用本机已有的工具是常见做法。
  • 发起网络请求network需留意4 处命中
    • lib/client.js:37fetch("/ccs-balance/api/settings", {
    • lib/client.js:144return fetch("/ccs-balance/api/" + method + qs, { headers: { "x-ccs-balance": "1" } }).then((r) => r.json());
    • lib/client.js:217fetch("/ccs-balance/api/settings", { headers: { "x-ccs-balance": "1" } }).then((r) => r.json()).then((d) => {
    • lib/ccs_host_helper.py:2r"""ccs host helper: read-only cc-switch.db queries + balance fetch.
    • 看请求发往哪些域名。发往作者自己的后端是常见做法。
  • 写入文件writes-files需留意2 处命中
    • lib/index.js:16try { writeFileSync(SETTINGS_FILE, JSON.stringify(settings), "utf8"); }
    • lib/index.js:17catch { try { writeFileSync(SETTINGS_FILE_FALLBACK, JSON.stringify(settings), "utf8"); } catch { /* ignore */ } }
    • 看写入位置。写自己的配置目录是正常的,写系统目录不是。
  • 含混淆或编码代码obfuscated-code需留意1 处命中
    • lib/client.js:293showSettings ? React.createElement("span", { style: { fontSize: "11px", color: "var(--color-text-secondary,#888)" }, tit…
    • 混淆本身不是恶意,但公开源码里出现大段混淆值得问一句为什么。
  • 接触凭据或密钥credentials一般22 处命中
    • lib/index.js:384.replace(/([?&](?:key|token|api_key|apikey|access_token|authorization)=)[^&\s"']+/gi, "$1<redacted>")
    • lib/ccs_host_helper.py:6Security: apiKey/accessToken are NEVER printed; redacted (first 6 + len) in provider listings.
    • lib/ccs_host_helper.py:14SENSITIVE = ("key", "token", "secret", "password")
    • lib/ccs_host_helper.py:31(re.compile(r"([?&](?:key|token|api_key|apikey|access_token|authorization)=)[^&\s\"']+", re.I), lambda m: m.group(1) + "…
    • 看它读取哪些凭据、发往哪里。用于登录自己的服务是正常的。
  • 读取文件reads-files一般3 处命中
    • lib/index.js:9const HELPER = readFileSync(join(__dirname, "ccs_host_helper.py"), "utf8");
    • lib/index.js:13try { settings = JSON.parse(readFileSync(SETTINGS_FILE, "utf8")); }
    • lib/index.js:14catch { try { settings = JSON.parse(readFileSync(SETTINGS_FILE_FALLBACK, "utf8")); } catch { settings = {}; } }
    • 读文件是绝大多数插件的正常工作方式,本身不构成顾虑。
逐条扫描明细
能力标识关注度命中次数
可执行外部程序spawns-processes高关注1
发起网络请求network需留意4
写入文件writes-files需留意2
含混淆或编码代码obfuscated-code需留意1
接触凭据或密钥credentials一般22
读取文件reads-files一般3

这份报告的口径

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

依赖安全公告

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

← 返回全部插件