Skip to content

Security: agenmod/awesome-ai-cli

Security

docs/security.md

🛡️ 安全须知

CLI 与 Plugin 的安全差异

Plugin 在平台沙箱里运行,有声明式权限控制(类似手机 App 的"是否允许访问相机?")。

CLI 直接执行系统命令。 AI 一旦能运行某个 CLI,就能用这个身份做任何该 CLI 支持的操作。没有"只读不写"的细粒度控制。

这是 CLI 最大的结构性缺陷,目前靠 --dry-run 和人工确认来补救。

本列表的安全声明

本列表中的工具是 策展收录,非安全审计

  • 我们验证了工具的来源和基本功能
  • 我们 没有 做代码安全审计
  • 工具可能随时被原作者更新、修改
  • 使用任何工具前,请自行评估风险

风险矩阵

操作类型 风险等级 示例 建议
只读查询 🟢 低 查日程、搜文件、查状态 可直接使用
数据导出 🟡 中 导出邮件、下载文件 注意数据去向
写操作 🟡 中 发消息、创建文档 --dry-run 预览
破坏性操作 🔴 高 删除文件、清空数据 必须人工确认
认证/密钥 🔴 高 配置 API Key、OAuth 不要让 AI 管理密钥
付款/交易 🔴 高 支付、转账 严禁 AI 自动执行

安全最佳实践

1. 使用 --dry-run

# 先预览,再执行
stripe payment_intents create --amount 1000 --currency usd --dry-run

# 确认没问题后去掉 --dry-run
stripe payment_intents create --amount 1000 --currency usd

2. 环境变量管理密钥

# 正确:使用环境变量
export STRIPE_API_KEY=sk_test_xxx
stripe listen

# 错误:在提示词中暴露密钥
# "用 API Key sk_test_xxx 调用 Stripe"  ← 千万别这么做

3. 最小权限

  • 能用只读 Token 就别用读写 Token
  • 能用测试环境就别用生产环境
  • 能限制 IP 白名单就限制

4. 审查 AI 生成的命令

特别注意:

  • rm -rf / del 类删除命令
  • 包含 sudo 的命令
  • 涉及网络传输的命令(curl -X POST
  • 修改系统配置的命令

报告安全问题

如果你发现本列表中某个工具存在安全风险:

  1. 不要公开披露 —— 先联系工具维护者
  2. 在本仓库提 Issue(标记为 security
  3. 我们会评估并更新工具状态

There aren’t any published security advisories