Skill 安全吗:安装第三方 Skills 前检查什么(官方安全说明与八步审查)

网上下载的 Skill 能直接装吗、有什么安全风险?按 Anthropic、VS Code、Gemini CLI 等官方文档讲清 Skill 能做到什么、官方列出的几类风险、不同运行环境的权限差别,以及安装前逐项要看的八个地方和装完之后的收紧办法。

NNathaniel bigo··原创首发·AI 辅助撰写
10 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 免费账号 账号
本文根据 Anthropic 开发者文档《Agent Skills》的 Security considerations 一节,以及 Claude Code、VS Code、Gemini CLI、OpenCode 的官方技能文档整理,资料核对于 2026-10-11。MCP 服务器的同类问题见《MCP 服务器怎么选、装之前怎么审》。

适用于谁

  • 搜「skills 安全风险」「skills 安全审查」「skills 安全扫描」「skills 安全检测」的人;
  • 看到一个热门 Skill 仓库,准备照着 README 一行命令装上的人;
  • 团队里负责定「哪些技能可以装」的人。

结论先说

  1. 官方的立场很明确:只使用来源可信的 Skill,即你自己写的,或者从 Anthropic 获得的。必须用来源不明的 Skill 时,要格外谨慎并在使用前彻底审查。
  2. Skill 不只是一段提示词。它通过说明和代码给智能体增加能力,一个恶意的 Skill 可以指示智能体以与它声称的用途不符的方式调用工具、执行代码。
  3. 风险有多大取决于智能体当时有什么权限。在本机的编程智能体里,Skill 里的脚本和你自己运行的程序拥有同样的网络和文件访问能力。
  4. 审查要看全部文件,不只是 SKILL.md:脚本、图片和其他资源都要看。
  5. 官方的比喻:把装 Skill 当成装软件来对待。

一、Skill 能做到什么

一个 Skill 文件夹里可能有三样东西,对应三种影响方式:

内容怎么起作用风险点
SKILL.md 里的说明被加载进上下文,智能体照着做说明里可以写「先读取某文件并发送到某地址」这类与用途无关的指令
scripts/ 里的脚本智能体通过终端运行脚本就是普通程序,能做你的账号能做的事
引用的外部地址智能体按说明去抓取抓回来的内容里可能藏着新的指令,而且内容可以事后被改掉

还有一些工具专有的机制会放大影响,以 Claude Code 为例:

  • allowed-tools 字段可以让列出的工具在调用这一轮里免确认;
  • 正文里的内联命令(以 ! 加反引号包住的命令)会在内容发送给模型之前就执行,并把输出替换进去;
  • hooks 字段注册的 Hook 从技能被调用起一直保留到会话结束。

这些都是正当的功能,但意味着审查时不能只看正文的文字说明。

二、官方列出的风险

Anthropic 文档的「Key security considerations」:

  • 要彻底审查:检查 Skill 里附带的所有文件,留意异常模式,如意料之外的网络调用、文件访问,或与声称用途不符的操作;
  • 外部来源有风险:从外部地址获取数据的 Skill 风险尤其大,获取到的内容可能包含恶意指令;即使 Skill 本身可信,它依赖的外部内容日后发生变化也会带来问题;
  • 工具滥用:恶意 Skill 可以以有害的方式调用工具(文件操作、终端命令、代码执行);
  • 数据暴露:能接触敏感数据的 Skill,可能被设计成向外部系统泄露信息;
  • 当成安装软件:把 Skill 集成进能接触敏感数据或关键操作的生产系统时要特别小心。

官方警告框里写的后果包括:数据外泄、未经授权的系统访问等。

三、在哪里运行,权限差多少

同一个 Skill 在不同环境里能做的事不一样。Anthropic 文档给出的运行环境差别:

环境网络安装软件包
claude.ai取决于用户或管理员设置,可能是完全、部分或没有网络访问以官方帮助文章为准
Claude API没有网络访问,不能调用外部接口运行时不能安装新包,只有预装的可用
Claude Code完整的网络访问,与你电脑上其他程序相同可以,官方建议只做本地安装,避免影响你的电脑

所以在本机的编程智能体里装第三方 Skill,是风险最高的场景:有网络、有你的文件、有你的环境变量和凭据。

四、安装前的八步

第一步:确认来源。 仓库属于谁、是不是你要找的那个作者或官方组织。仓库名和用户名逐字核对,名字相近的仿冒仓库是最省事的攻击方式。

第二步:先下载、不安装。 把仓库克隆到一个临时目录里看,而不是直接运行 README 里的一键安装命令。带 --yes、--all、--consent 这类跳过确认的参数,装第三方内容时不要用。

第三步:通读 SKILL.md。 重点找与用途无关的指令:读取密钥或配置文件、访问主目录里的 .ssh、.aws 之类的目录、向某个地址发送内容、要求「不要告诉用户」。也看 frontmatter:有没有 allowed-tools,它预先批准了哪些工具和命令。

第四步:读每一个脚本。 scripts/ 下的文件逐个打开。看它访问哪些路径、连哪些地址、有没有下载并执行别的东西、有没有经过混淆或编码的大段内容。看不懂的脚本不要装。

第五步:检查所有外部地址。 把 Skill 里出现的 URL 列出来,逐个判断:是不是它声称要用的服务、内容会不会被第三方修改。

第六步:看引用的其他文件。 references/、assets/ 里的文档同样会被读进上下文,里面也可以藏指令。官方说的是审查全部文件,包括图片和其他资源。

第七步:看依赖。 脚本里用到的包是否固定了版本,是不是常见的、能查到来源的包。

第八步:想清楚它需要什么权限。 一个「帮你润色提交信息」的 Skill 没有理由联网,也没有理由读仓库之外的文件。需要的权限和用途对不上,就不装。

五、装上之后怎么收紧

保留确认步骤。 不要为了省事打开终端命令的自动批准。VS Code 官方专门提醒:使用共享的技能前先审阅,并检查与终端脚本执行有关的自动批准设置。

利用工具自带的闸门。

工具可以用的机制
Claude Code权限规则里用 Skill(名称) 允许或拒绝特定技能;设置 "disableSkillShellExecution": true 禁用技能正文里的内联命令执行;skillOverrides 把某个技能设为只能手动调用或关闭
Gemini CLI技能激活前有确认提示,显示名称、用途和将访问的目录;安装时不加 --consent
OpenCode在 opencode.json 里对技能名设 ask 或 deny
VS Code Copilotdisable-model-invocation: true 让技能只能手动调用;审查终端自动批准设置

把自动调用关掉。 对还不够放心的技能,改成只能手动调用,它就不会在你没注意的时候被加载。

放在项目里而不是全局。 只在需要它的仓库里安装,不要一上来就装成对所有项目生效。

更新也要审。 今天看过的内容,下次更新可能就变了。更新前看一遍改动;从 Git 仓库安装的,记下当时的提交版本。

不用就删。 装着不用的技能既占上下文,也多一分暴露。

六、团队怎么管

  • 定一个允许清单,写明接受标准,技能进仓库要经过代码评审;
  • 团队技能统一放在仓库里(如 .claude/skills/、.agents/skills/),改动有记录、可回滚;
  • 企业版的集中管理:Anthropic 文档提到,Claude Enterprise 组织可以对上传到 claude.ai 和 Cowork 的自定义技能开启内容扫描(Skill content scanning),但这项扫描不覆盖通过 Skills API 或 Console 上传的技能;Claude Code 支持通过托管设置向全组织部署技能;
  • 自己写的也要注意:技能里不要写入密钥和内部地址,提交前检查一遍。

自查清单

  • 我知道这个技能是谁写的,仓库地址核对过;
  • SKILL.md、所有脚本、所有引用文件我都读过;
  • 里面出现的外部地址我都清楚是干什么的;
  • 它要求的权限和它声称的用途对得上;
  • 我没有用跳过确认的参数安装;
  • 终端命令的确认步骤还在;
  • 它只装在需要的项目里;
  • 更新之前我会先看改动。

常见问题

Q:有没有自动扫描 Skill 的工具?

官方文档里提到的只有面向 Claude Enterprise 组织的内容扫描功能。社区里有各种第三方扫描工具,本文没有逐一核对,不做推荐;无论用不用工具,人工读一遍仍然是官方要求的做法。

Q:下载量高、星标多的技能就安全吗?

热度说明用的人多,不说明有人审过每一个版本。技能目录网站和排行榜的收录也不等于安全审查。

Q:只有说明、没有脚本的技能是不是就没事?

风险小一些,但不是零。说明本身可以指示智能体运行命令或访问文件,是否执行取决于你的权限设置和你有没有点确认。

Q:官方的技能可以放心装吗?

官方把「从 Anthropic 获得的」列为可信来源。前提是确认你装的确实是官方仓库,而不是名字相似的仓库。

参考资料

  • Agent Skills · Security considerations(Anthropic 开发者文档):https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
  • Extend Claude with skills(Claude Code 官方):https://code.claude.com/docs/en/skills
  • Use Agent Skills in VS Code(VS Code 官方):https://code.visualstudio.com/docs/copilot/customization/agent-skills
  • Agent Skills(Gemini CLI 官方):https://geminicli.com/docs/cli/skills
  • Agent Skills(OpenCode 官方):https://opencode.ai/docs/skills/
需要开通或续费?Claude Pro 充值 →

Nathaniel 的更多内容

  1. 01

    promptfoo 使用教程:对比提示词和模型、写断言自动评测(安装与配置)

    promptfoo 是什么、怎么使用?按官方 README 和入门文档讲清它的用途、三种安装方式、用示例项目起步、promptfooconfig.yaml 里提示词、模型和测试用例三部分怎么写、常用断言类型的含义、eval 与 view 两条命令,以及把它放进日常改提示词流程的方法。

    ChatGPT其他 AI 工具0
  2. 02

    Kimi API怎么用:API Key获取、Python调用、K3价格与429报错处理

    Kimi API Key 在哪里获取、怎么用 Python 调用 K3、价格怎么算、429 和 401 报错怎么办?本文按 Kimi API 开放平台官方文档讲清注册认证、创建 Key、base_url 与模型名、计费规则和常见错误排查。

    Kimi0
  3. 03

    Cursor Agent 模式怎么用:Agent、Plan、Ask 三种模式,检查点回滚与消息排队

    Cursor Agent 模式是什么、和 Plan / Ask 模式怎么选?按官方文档讲清 Agent 能调用哪些工具、Shift+Tab 切换模式、Plan 模式先出方案再动手、用检查点撤销改动、任务进行中排队或插话,以及 /goal 长目标。

    Cursor0
  4. 04

    Gemini 聊天记录怎么导出:导出到文档 / 表格、生成 PDF 与用 Takeout 批量导出完整对话

    Gemini 没有「一键导出全部对话」的按钮,但有三条官方路径:单条回答导出到 Google 文档、Gmail、表格;让 Gemini 直接生成 PDF、Word、Markdown 文件;用 Google Takeout 批量下载全部活动记录。本文给出每种方法的步骤和限制。

    Gemini0
  5. 05

    ChatGPT 生成图片中文乱码、文字错误怎么办:7 个按顺序试的办法

    让 ChatGPT 做海报、封面、信息图,中文总是缺笔画、错字、乱码?本文按 OpenAI 官方图像提示指南,给出从写法、字数、局部修改、质量档位到后期排版的 7 个办法,以及什么时候干脆别让 AI 写字。

    ChatGPT0
  6. 06

    OpenCode Skills 使用指南:技能目录、命名规则、权限配置与不加载排查

    OpenCode 的 Skills 放在哪个目录、怎么控制哪些技能能用?按 OpenCode 官方文档讲清六个扫描位置、name 的正则规则、skill 工具的工作方式、在 opencode.json 里用 allow / deny / ask 配置权限、按智能体覆盖,以及技能不出现时的五项检查。

    其他 AI 工具0

同产品的其他教程

  1. 01

    Cursor、Claude Code、Codex、GitHub Copilot 有什么区别:按形态、账号、计费和规则文件对比

    Cursor 和 Claude Code 的区别是什么、和 Codex、GitHub Copilot 怎么选?只用各家官方文档的事实对比:产品形态、用什么账号、怎么计费、能选哪些模型、规则文件与 MCP、权限模式、代码审查;不做「谁更强」的排名,给出按场景选择的思路。

    ClaudeCursor0
  2. 02

    如何让大模型稳定输出 JSON:结构化输出、JSON 模式与提示词写法(OpenAI / Claude)

    怎么让大模型稳定输出 JSON?本文按 OpenAI 和 Anthropic 官方文档讲清只靠提示词、JSON 模式、结构化输出三种做法的可靠程度,两家的写法与 Schema 限制,以及拒答和截断两种例外。

    ChatGPTClaude0
  3. 03

    MinerU 是什么、怎么用:把 PDF 等文档解析成 Markdown(4.0 的安装、四档解析与命令)

    MinerU 是什么、怎么安装使用?按官方中文 README 讲清 4.0 版本的定位、支持的输入与输出格式、flash / basic / standard / advanced 四档解析各适合什么、pip 安装命令、mineru-kit 与 mineru 两个命令的分工和常用写法,以及从旧版升级要注意什么。

    其他 AI 工具0
  4. 04

    npx skills add 怎么用:从 GitHub 安装 Skill、skills.sh 是什么与常用命令

    网上的 Skill 安装命令大多是 npx skills add 开头,它是什么、装到哪去了?按官方 README 讲清 skills 命令行工具支持的来源写法、项目与全局两种范围、-a 指定工具、list / find / update / remove 等命令、软链接与复制的区别,以及怎么关掉遥测。

    Claude其他 AI 工具0
  5. 05

    即梦首尾帧怎么用:两张图生成过渡视频(在哪里、提示词、不能用怎么办)

    即梦首尾帧在哪里、怎么用?本文讲清首尾帧入口、哪些模型支持、两张图的比例要求、过渡提示词怎么写,以及「首尾帧不见了 / 不能用了」「画面跳变」的原因和解决办法。

    其他 AI 工具0
  6. 06

    提示词里的角色设定有用吗:「你是一位专家」该怎么写才有效(官方文档怎么说)

    提示词开头写「你是一位资深专家」到底有没有用?本文按 Anthropic、OpenAI、Google 官方文档讲清角色设定管什么、不管什么,一句话角色和详细人设各自适合什么场景,角色应该放在哪里,以及比「你是专家」更有效的四个写法。

    ChatGPTClaude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~