插件安全与信任
安装前判断是否信任一个插件:插件在你机器上能做什么、市场分层与官方市场名、安装前如何审阅、移除不再信任的插件、Claude Code 的拒绝与警告、组织级控制和遥测。
你安装的 Claude Code 插件能以你的用户权限在你的机器上执行任意代码。
插件从市场(marketplace)安装,市场是 Claude Code 获取它的目录。有些市场名称被保留给 Anthropic 自己的市场,其他所有市场都是第三方的。市场的名称告诉你谁发布了这个目录,而不是其中每个插件做什么,所以不论它来自哪个市场,都要在安装前审阅插件。
如果你在决定是否安装一个插件,或者你在团队使用工具之前对其做评审,请读这一页。以下情形在其他页面里讲:Claude Code 自己的安全模型见安全页;为组织限制或要求插件见「为你的组织管理插件」;security-guidance 或 claude-security 插件不属于本页范围。建议先看「插件能做什么」和「哪些市场是 Anthropic 的」,再「安装前审阅」。
理解插件能做什么
插件可以携带在你机器上以你的用户权限运行代码的内容,以及作为指令进入 Claude 上下文的内容。已安装的插件能做这些事:
- Hooks:插件的 hooks 在 Claude Code 生命周期的某些节点(如工具调用之前或之后)作为 shell 命令运行。
- Mods:插件的 mod 以你的权限在 Claude Code 内运行 JavaScript。在安装之前列出某个 mod 做什么,见 mods 概览页的「决定是否信任一个 mod」。
- MCP 和 LSP 服务器:Claude Code 连接已启用插件声明的 MCP 服务器,并把它们的工具提供给 Claude;stdio MCP 服务器是 Claude Code 在你机器上启动的进程。Claude Code 也会启动插件声明的语言服务器。
bin/目录:Claude Code 把每个已启用插件的bin/目录加到 Bash 工具 shell 的PATH里,所以 Claude 的 Bash 命令能运行那里的任何可执行文件。- Skills、命令和智能体:这些作为指令进入 Claude 的上下文,所以它们影响 Claude 如何使用它已有的工具。
- 更新:当你安装插件所在的市场开启了自动更新时,Claude Code 在后台更新该插件,所以你审阅过的文件可能在磁盘上发生变化。自动更新何时运行见插件加载页;按市场开关自动更新见「保持插件更新」。
Claude Code 的权限规则和沙盒覆盖的是 Claude 发出的工具调用,而不是插件自己运行的代码:
- Hooks 和服务器进程:命令 hook 以你完整的用户权限执行 shell 命令;Claude Code 在沙盒之外运行 hooks 和 MCP 服务器。
- Claude 的工具调用:调用插件的某个 MCP 工具,以及运行插件
bin/里可执行文件的 Bash 命令,都是工具调用,所以你的权限规则适用于它们。mod 能对工具调用做什么,见 mods 概览页。
安装插件也会启用它,除非它的清单或市场条目设了 defaultEnabled: false 且你没有自己启用它。要移除你不再信任的插件,见下面「移除你不再信任的插件」。
按名称识别 Anthropic 的市场
市场的名称把它放进三个层级之一:官方、社区或第三方。Claude Code 只接受来源是 github.com/anthropics/ 仓库的市场使用官方和社区名称,所以第三方市场无法冒充 Anthropic 的市场。同事或你的组织发布的市场属于第三方。
| 层级 | 哪些市场 |
|---|---|
| 官方 | 官方市场名称,如 claude-plugins-official |
| 社区 | claude-community、claude-plugins-community 和 healthcare |
| 第三方 | 其他每个市场 |
claude-community 目录把插件固定到某个提交 SHA 的地方(几乎每个条目都是这样),Claude Code 拒绝安装不同的提交。
官方市场名称
官方层级由这些市场名称组成(官方核实时的列表,以官方为准):claude-plugins-official、claude-code-marketplace、claude-code-plugins、anthropic-marketplace、anthropic-plugins、agent-skills、anthropic-agent-skills、life-sciences、knowledge-work-plugins、claude-for-legal、claude-for-financial-services、financial-services-plugins、first-party-plugins、claude-tag-plugins。
官方、社区和演示市场有何不同、去哪里浏览各自列出的内容,见「Anthropic 的市场」页。
安装前审阅插件
安装插件之前,看看它添加了什么、来自哪里。
- 检查市场的来源。 在 shell 里运行
claude plugin marketplace list,打印每个市场添加自哪个来源,例如某个 GitHub 仓库或目录。 - 阅读详情面板。 在 Claude Code 会话里运行
/plugin并选择该插件。详情面板显示 Will install 部分,列出插件的命令、智能体、skills、hooks,以及 MCP 和 LSP 服务器。对 Anthropic 没有发布组件数据的插件,该部分显示市场条目声明的内容,或一条说明:存放在市场内的插件显示Components will be discovered at installation,从别处获取的插件显示Component summary not available for remote plugin。 - 阅读插件的源代码。 在详情面板里,选安装选项下方的 Open homepage 或 View on GitHub;如果面板两者都没提供,打开你在第一步找到的市场仓库,在其中找到插件的目录。Will install 部分显示存在某个 hook,却不显示它运行什么,所以要阅读插件目录里的这些文件:
hooks/hooks.json(每个 hook 运行的命令)、.mcp.json(每个服务器的命令或 URL)、bin/(目录里的每个文件)。 - 列出插件包含什么。 克隆保存插件目录的仓库,然后在 shell 里运行
claude --plugin-dir <plugin directory> plugin details <plugin name>,查看 Claude Code 在其中发现了什么。该命令不启动会话就读取插件的文件,并打印Component inventory,列出插件的 skills 和命令、智能体、带各自事件的 hooks,以及 MCP 和 LSP 服务器。
安装插件之后,在 shell 里运行 claude plugin details <plugin name>,为 ~/.claude/plugins/cache/<marketplace>/<plugin>/<version>/ 下已安装的副本打印同样的 Component inventory。
移除你不再信任的插件
在 shell 里用你安装它时的 --scope 运行 claude plugin uninstall <plugin>,然后检查卸载移除了什么、留下了什么:
- 持久数据:默认情况下,当那是插件安装的最后一个作用域时,卸载也会删除插件的持久数据目录;
--keep-data以及数据保留的其他情形见 plugin uninstall 文档。 - 缓存文件:插件的文件在
~/.claude/plugins/cache/下保留 14 天,之后由后台清理移除。卸载你最后一个插件之后,孤立目录会一直保留到你安装另一个插件。要立即删除这些文件,自己移除~/.claude/plugins/cache/<marketplace>/<plugin>/下插件的目录。 - 市场:如果你也不信任市场的所有者,同时移除这个市场,这会卸载你从它安装的每个插件。
识别 Claude Code 何时拒绝或警告
从 /plugin 的 Discover 或 Marketplaces 标签页打开的详情面板,对每个插件显示同样的信任警告。在「不受信任的市场来源与完整性检查失败」所述的情形下,Claude Code 是拒绝而不是警告。
安装前的信任警告
不论插件来自哪个市场,警告的内容都一样(以下为英文原文的大意):在安装、更新或使用插件之前,确保你信任它;Anthropic 不控制插件里包含哪些 MCP 服务器、文件或其他软件,无法验证它们能按预期工作或不会改变;更多信息见各插件的主页。如果你的组织在托管设置里设置了 pluginTrustMessage,Claude Code 会把该文本附加到警告后面。
不受信任的市场来源与完整性检查失败
在以下情形下,Claude Code 拒绝加载市场或安装插件,各有自己的错误消息:
- 不受信任的市场来源:市场使用了官方或社区名称,但其来源在
github.com/anthropics/之外时,Claude Code 停止加载该市场以及你从它安装的插件,错误是「Marketplace is registered from an untrusted source」。 - 归档完整性:市场条目把
archive来源固定到某个sha256摘要,而下载文件的摘要与之不匹配时,Claude Code 拒绝安装,错误是「Plugin archive integrity check failed」。
sha256 固定与社区目录的提交 SHA 固定是分开的,后者选择要检出的 git 提交。
为组织强制执行插件控制
借助托管设置,管理员可以强制执行这些插件控制:
- 允许列表或阻止列表市场来源
- 强制启用插件
- 关闭
--plugin-dir和--plugin-url标志以及CLAUDE_CODE_PLUGIN_DIRS变量 - 把 hooks 限制为来自托管设置和强制启用插件的那些
- 用
syncClaudeAiPlugins阻止成员 claude.ai 账号里的插件在 Claude Code 里加载
控制矩阵说明了每个键做什么、不覆盖什么。
在遥测里找到插件
如果你的组织把 Claude Code 的 OpenTelemetry 事件导出到自己的后端,市场层级决定哪些插件名称出现在那里:
- Plugin loaded 事件:该事件按原样报告官方层级的插件和市场名称;对社区和第三方层级,除非你设置
OTEL_LOG_TOOL_DETAILS=1,plugin.name和marketplace.name是字面字符串third-party。 - 插件作用域:loaded 事件的
plugin.scope仍报告插件来自哪里,例如你的托管设置启用的插件是org,任何其他第三方插件是user-local;所有取值见 plugin loaded 事件的文档。 - Plugin installed 事件:除非你设置
OTEL_LOG_TOOL_DETAILS=1,该事件对非官方插件省略名称字段,而不是报告third-party。 - Claude Code Analytics API:Claude Code 按名称报告官方和社区层级的插件,把其他每个插件报告为
third-party。
下一步
- 为你的组织管理插件:限制用户能从哪些市场安装,并要求使用你信任的那些。
- 安装与管理插件:选择作用域之前审阅插件的详情面板。
- Anthropic 的市场:哪些市场名称是 Anthropic 的。
- 安全:Claude Code 自己的安全模型。