跳到主内容

安装插件前的安全检查清单

用十分钟检查来源、命令、权限、凭据和回滚路径;学会区分“信息不足”和“明确风险”,再决定是否把插件交给本机与 Agent。

约 8 分钟读完

读完这篇你会

  • 在十分钟内完成一次插件安装前的来源、命令、权限与回滚检查
  • 分清“资料不足”“需要确认”和“明确不该继续”三种状态
  • 用隔离 profile 降低陌生插件影响日常环境的风险

适用版本

Compatible with: dsh 0.1.x。这是一份用户侧的决策清单,不是安全认证,也不能替代代码审计。

为什么安装插件需要检查

插件不是单纯的界面皮肤。它可能读取文件、访问网络、调用外部程序,或让 Agent 多出一项可以主动调用的能力。风险不等于不能装;风险意味着你需要知道它在做什么,并让授权范围与需求相称。

安装前最重要的不是问“它安全吗”,而是问:它为什么需要这些能力?如果出错,我能否停止并恢复?

十分钟检查清单

1. 来源:我知道代码来自哪里吗?

  • 安装命令指向的 npm 包或 GitHub 仓库是否和详情页、README 一致?
  • 仓库是否公开,维护者是否能追溯?
  • README 是否说明功能、配置和限制,而不只是营销语?
  • 若是 fork、镜像或子目录插件,是否解释与上游的关系?

来源不清时,不要用“Star 高”替代答案。Star 可以是大仓库累计的热度,不说明当前子包的维护情况。

2. 命令:我理解即将执行什么吗?

把命令拆开看:目标 profile、来源、版本/ref、本地路径和额外 flag。尤其停下来检查以下信号:

信号应做什么
要求 `curl ...sh` 或下载后直接执行
要求关闭沙箱或广泛授权 build script先找出具体依赖与必要性
指向临时 URL、匿名仓库或难以复现的分支要求固定版本或可追溯来源
命令与 README 不一致以维护者的最新文档核实,暂停安装

本站兼容性检查会标出已抓取文本中的部分高风险模式。它是提醒,不是“绿灯”;没有命中也不表示所有代码已审计。

3. 权限:能力和任务相称吗?

为插件写一句“能力—理由”对应关系:

能力合理的理由需要追问的情况
读取项目文件代码检索、文档分析声称是主题却读取整个 home 目录
网络访问调用明确的 API不说明域名或发送哪些数据
子进程调用已知转换工具任意 shell、后台常驻进程
Token访问特定服务要求把 token 写进 README、命令或仓库

能力多不一定不好,但每一项都应该能解释。解释不出来时,把它当成未完成的调查,而不是默认同意。

4. 凭据:token 会去哪里?

不要把 API Key、Cookie、SSH key 或生产配置粘进聊天、命令历史、README 或项目仓库。优先使用 DSH/系统提供的设置或环境变量机制,并确认:

  • 插件是否会在日志里打印配置;
  • token 是否只发往你预期的服务;
  • 卸载后是否还留下配置或缓存;
  • 能否为试用创建一个权限更小、可撤销的 token。

一旦插件要求你把长期 token 直接写进命令行,先停止;命令历史往往比你想象得更容易泄露。

5. 回滚:失败后怎么离开?

安装前先写下:插件 ID、原始命令、所在 profile、相关配置文件和卸载命令。陌生或高权限插件优先装进专门的试验 profile;验证通过再进入日常 profile。

回滚不是失败,而是正常的试用设计。可回滚让你更敢探索,也让真正的问题更容易复现。

三种结论,分别怎么做

结论典型情况下一步
可以试来源、命令、权限和回滚都清楚在正确 profile 做最小验证
需要确认缺平台声明、文档过旧、权限理由不完整阅读 README、issue,或先隔离试用
停止要求秘密、关闭保护、执行不明脚本,且无法解释不安装;保留链接和原因,必要时向维护者提问

常见问题

机审证据得分高,是否可以直接信任?

不能。高分只说明目录能验证更多事实,例如 README、安装命令、许可证或兼容性字段存在。它不能证明代码没有漏洞,也不能证明适合你的环境。

我只是装一个主题,还需要这么做吗?

检查可以更快,但不应跳过。主题通常权限较低;如果它却要求网络、文件扫描或 shell,这正是你应该停下来问“为什么”的信号。

下一步

完成检查后,用插件安装失败怎么排查中的最小验证流程完成试用。