外观
插件安全检测
社区为每个插件自动生成安全检测报告,采用纯静态文本分析(读源码 + 正则),不执行插件代码,覆盖以下内容:
| 类别 | 说明 |
|---|---|
| 调用 API | 提取所有 bot.callApi("action"),含行号与代码行;动态拼接的标记为「动态调用」 |
| 代理 API | ctx.api / this.api 调用的框架内置代理方法 |
| 网络请求 | req / fetch / axios、外链 http(s):// |
| 文件操作 | fs 读写删等 |
| 危险操作 | eval / new Function / child_process / exec / spawn / process.exit / 动态 import() |
| 权限声明对比 | 插件元数据声明的 apis 与实际 callApi 对比,标出「未声明但调用」的越权信号 |
已排除
regex.exec()这类方法调用的误报(exec / spawn 前面是点号时不判为危险操作)。
风险等级
- 低:仅调用已声明 API,无网络 / 文件 / 危险操作;
- 中:有未声明的 callApi、或网络请求、文件操作(需审查目标地址 / 用途);
- 高:包含
eval/child_process等危险操作,强烈不建议安装。
提交时的检测流程
- 在提交页粘贴插件源码(
.ts/.js); - 右侧实时扫描(输入后 300ms 防抖)生成报告,边写边看;
- 填写插件元数据(名称、作者、版本、协议、声明 API 等);
- 发布:高风险插件会弹出二次确认。
命令行自检
社区网页的后端扫描逻辑与项目根目录 community/scan-plugin.mjs 一致,也可在本地命令行对任意插件复核:
bash
node community/scan-plugin.mjs plugin/keyword.ts
node community/scan-plugin.mjs --dir community/plugins注意
- 安全检测是静态分析,不保证 100% 发现所有行为;下载使用前仍建议人工过一遍源码;
- 社区当前无用户系统与人工审核,公网部署时建议自行补充鉴权 / 审核功能。
