> ## Documentation Index
> Fetch the complete documentation index at: https://agent.minimaxi.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 安全模型

> Mini App 的运行权限，以及宿主对端口、凭据和 Agent 接口的限制。

## Mini App 运行时

Mini App 的 Node 代码以你的用户身份在本机运行，和本地插件、MCP 服务器一样，可以读写你有权限访问的文件、启动程序、发起网络请求。请只安装来源可信的 Mini App，安装前先阅读它的 README，确认它会访问哪些数据。

宿主没有使用 seccomp、seatbelt 等操作系统沙箱，主要是考虑到跨平台支持、调试和第三方依赖的成本。相应地，宿主严格限制向 Mini App 开放的能力，防止第三方 Mini App 投毒，也防止 Agent 幻觉生成有害代码。

## 宿主的安全边界

| 边界 | 实现方式 |
| - | - |
| 只对本机可见 | 每个 Mini App 在独立进程中运行，只监听 `127.0.0.1` 上分配的端口 |
| 端口访问 | 每次运行生成一个凭据，只有 Mini App 页面和托管 MCP 客户端能使用；其他本地进程、其他浏览器标签和 DNS rebinding 请求都会收到 `401` |
| 插件不接触凭证 | 第三方服务通过 Host Connector 调用，使用你在 MiniMax Code 中授权的账号；Mini App 不保存凭证 |
| 页面不接触凭证 | 宿主凭据、内部端口、运行 ID 和 Connector 工具引用都不会暴露给页面 |
| 显式授权 | `hostConnectorAccess` 列出允许使用的 provider；`agentAccess` 未声明时默认禁止，唯一取值是 `session.run` |
| 不可变的运行副本 | 进程只从宿主复制并重新校验过的副本启动，发布后再修改源文件不会生效 |
| 窗口能力上限 | 置顶和鼠标穿透必须在 manifest 中声明，才能在运行时开启；切换窗口模式需要由用户操作触发；窗口必须位于某块屏幕的可见范围内 |

## 端口与凭据

Mini App 只监听本机地址，但本机的其他进程和浏览器页面仍可能访问它的端口，包括利用 DNS rebinding 的恶意网页。因此，宿主会在端口上校验调用方的身份：

![凭据流向](https://mintcdn.com/agent-cn/cVBevhAJXWhxEBzo/images/miniapp/credentials-zh.svg?fit=max\&auto=format\&n=cVBevhAJXWhxEBzo\&q=85\&s=73d7caf3340e9be463ae97673597df24)

* **每次运行生成一个凭据。**宿主每次启动进程时生成一个 32 字节的随机凭据，交给子进程里的请求守卫、宿主主进程和 Agent 的 MCP 客户端。页面不持有凭据。
* **守卫在插件代码之前加载。**子进程通过 IPC 接收初始化消息，缺少或多出字段都会导致启动失败；随后在 Node 内置 HTTP 服务的请求分发入口装上守卫，最后才加载插件代码。因此，插件创建的任何 `node:http` 服务收到的请求都已经过守卫检查。
* **校验 Host 和凭据。**`Host` 必须精确等于 `127.0.0.1:端口`，用于防范 DNS rebinding；凭据使用常量时间比对。WebSocket 升级和 CONNECT 请求也做同样的检查。验证通过后，凭据会从请求头中移除，不会传给插件的业务代码。
* **页面请求的凭据由宿主添加。**页面发出请求时，宿主主进程先核对请求的真实来源，再添加请求头；页面自行设置的同名请求头会被覆盖。Agent 访问 MCP 端点时，由 MCP 客户端在请求头中携带凭据，凭据不会写入对外可见的配置。

请求守卫和插件代码运行在同一个进程中，只能阻止外部调用方冒充宿主，无法隔离恶意插件。

## Agent 接口的限制

* Mini App 可以新建后台会话、分配任务、处理工具审批和问卷、查询可用的模型和 Agent，但没有读取你聊天记录的接口，也不能向聊天中插入消息。
* 每个 Mini App 只能续用自己创建的会话，会话归属由宿主记录。
* 这些限制只作用于宿主接口，Node 进程本身没有操作系统级隔离。

## 用户确认

* `message.append` 每次都需要你确认，并由你自己发送。宿主按 Electron 报告的真实页面核对调用方身份。
* Agent 审批只有「允许一次」和「拒绝」两个选项，Mini App 不能修改你的全局权限规则；没有人能回答的审批会直接被拒绝，见[谁能回答审批](/docs/miniapp/authors/agent#agent-interaction)。
* Mini App 不能读取聊天记录，也不能修改已发送的消息。

## 已知限制

* 端口鉴权只防范其他本地进程和浏览器标签，不防范恶意插件本身。
* 宿主只管理入口 Node 进程。插件自己启动的子进程，需要在 `dispose` 中自行清理。
* 服务重启后，已打开的标签会收到 `401`，刷新或重新打开后恢复。
