> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 信任与安全

> 了解数据处理、构建交付以及安全责任。

Ayakaleaf Pro 运行在你自己的基础设施中。你掌控它的数据、访问权限和网络边界。本页介绍默认的安全模型，并说明你需要承担的运维责任。

### Ayakaleaf Pro 可靠且安全吗？

Ayakaleaf Pro 是一个自托管的 Overleaf Pro 增强版本，我们的源代码可在 [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro) 获取。你的部署决定了服务在哪里运行、数据存放在哪里。

安全性取决于你的配置和运维。请保护好管理员访问权限、启用 HTTPS 并做好备份。

感谢 OpenAI 的大力支持。我们会定期使用 [Codex Security](https://chatgpt.com/codex/cloud/security/findings) 扫描代码仓库中的安全问题，并公开分享漏洞修复的结果。

### 我的数据会去哪里？

默认情况下，应用数据保留在你的部署内部：

* MongoDB 存储用户和项目数据。
* Redis 存储缓存和实时协作数据。
* 本地卷或兼容 S3 的存储保存项目文件。

默认情况下只有 Web 服务对外暴露。内部服务通过 Docker 网络进行通信。

### 我的数据会被发送给第三方或从第三方获取吗？

除非你启用了需要外部通信的功能，否则任何数据都不会离开你的部署。Ayakaleaf Pro *不发送任何遥测数据、使用分析或崩溃报告*。在默认配置中，错误报告和分析均已禁用。

有几项功能完全不会发出外部请求。模板存储在你自己的部署中并由其提供。Python 脚本运行器通过 WebAssembly 在用户的浏览器中执行，其运行时由你自己的 Web 服务提供，而非公共 CDN，因此脚本代码和输出永远不会进入网络。Git Bridge 只能通过内部 Docker 网络访问。全项目搜索、符号面板、修订追踪、项目历史和管理面板完全在本地运行。沙盒编译容器在创建时已禁用网络。

其余功能的请求会发往以下目的地。每个请求都由 Web 服务发起：

<Accordion title="AI 助手与搜索">
  AI 功能默认处于禁用状态。启用后，聊天和 LaTeX 错误建议会将提示词及相关项目上下文发送到通过 `AI_BASE_URL` 配置的模型端点。可选的网页搜索会将查询发送到所配置的 Tavily 兼容服务，文档搜索则会将查询发送到 `DOCS_MCP_URL`（默认：`https://docs.overleaf.com/~gitbook/mcp`）。搜索结果可能会被包含在发送给模型提供商的请求中。有关配置和用户控制，请参阅 [AI 集成](/zh-CN/on-premises/configuration/overleaf-toolkit/ai-integration "mention")。
</Accordion>

<Accordion title="GitHub 集成">
  **GitHub 集成**会访问 `github.com` 和 `api.github.com`。它按用户启用，需要关联 GitHub 账户，授权时会请求 `read:org`、`repo` 和 `workflow` 权限范围。推送时会将完整的项目文件内容作为 Git blob 上传，随后组装成 tree 和 commit。它还会执行分支、引用、比较和合并操作，并读取所关联账户的个人资料、组织成员身份和仓库列表。项目内容会双向离开你的部署——请将已关联的 GitHub 账户视为与其关联的每个项目的导出通道。
</Accordion>

<Accordion title="Zotero 集成">
  **Zotero 集成**会访问 `www.zotero.org` 进行授权，并访问 `api.zotero.org` 获取文献库数据。它按用户启用，需要关联 Zotero 账户。会发送 OAuth 握手信息和用户的 API 密钥。读取是单向的：参考文献库以 BibTeX 形式拉取，不会上传任何项目内容。
</Accordion>

<Accordion title="Mendeley 集成">
  **Mendeley 集成**会访问 `api.mendeley.com` 进行授权和获取文献库数据。它按用户启用，需要关联 Mendeley 账户。OAuth 握手会请求 Mendeley 的 `all` 权限范围——这是其 API 提供的唯一权限范围——但 Ayakaleaf 只执行读取操作：参考文献库和群组文献库以 BibTeX 形式拉取，不会上传任何项目内容。访问令牌会自动刷新；当 Mendeley 撤销授权时，存储的凭据会被丢弃，并提示用户重新关联账户。
</Accordion>

<Accordion title="文档页面">
  **文档页面**从 `https://learnwiki.overleaf.com` 获取，可通过 `WIKI_URL` 进行配置。请求由 Web 服务发出，而非用户的浏览器，因此上游 wiki 只能看到你的服务器，永远看不到用户的地址。请求中只发送所请求页面的标题，响应会缓存在磁盘上。如果不能接受对外的文档流量，请将 `WIKI_URL` 指向你自己的镜像，或屏蔽该目的地。
</Accordion>

<Accordion title="邮件发送">
  **邮件发送**会访问你所配置的 SMTP 服务器或邮件 API；没有默认值。收件人地址和邮件内容（包括密码重置和邀请链接）会离开你的部署。
</Accordion>

<Accordion title="两项可选检查（PWD/reCAPTCHA）">
  <strong>两项可选检查默认处于禁用状态。</strong> 除非设置了 `HAVE_I_BEEN_PWNED_ENABLED`，否则泄露密码检查不会生效；启用后，它会将密码 SHA-1 哈希值的前几个字符发送到 `api.pwnedpasswords.com`，绝不会发送密码本身。除非配置了 reCAPTCHA 站点密钥，否则 CAPTCHA 验证不会生效；启用后会访问 `www.google.com`。
</Accordion>

<Accordion title="单点登录（OAuth/LDAP/SAML）">
  **单点登录**只会访问你提供的身份提供商，传输的内容取决于所用协议。使用 LDAP 时，Web 服务直接连接你的目录服务：它使用你配置的服务账户进行绑定，在你定义的 base、过滤器和属性列表范围内进行搜索，并根据你的目录验证登录表单中输入的密码，因此用户名和密码会到达目录服务器。启用基于目录的联系人功能会额外触发一次搜索以填充联系人列表。使用 OIDC 时，Web 服务会在你的令牌端点交换授权码，然后调用你的用户信息端点，默认请求 `openid profile email` 权限范围；可通过 `OVERLEAF_OIDC_SCOPE` 进行配置。使用 SAML 时，认证请求会通过用户的浏览器传递到身份提供商，而不是通过服务器直连。在这三种情况下，用户的姓名和邮箱地址都是从提供商处获取的，而非发送给提供商，之后会存储在本地用户记录中。
</Accordion>

<Accordion title="第三方凭据">
  **第三方凭据**——OAuth 令牌和 API 密钥——存储在 MongoDB 的用户记录中，使用 AES-256-CTR 加密，每条记录使用独立的盐值和初始化向量。它们绝不会以明文存储，也绝不会写入日志。如果设置了 `${PROVIDER}_CIPHER_PASSWORD`（例如 Zotero 和 Mendeley），加密密钥将取自该变量；否则会在首次使用时生成一个密钥，并以仅所有者可访问的权限持久化保存在你的数据卷中。请将该密钥与数据卷一起备份：一旦丢失，存储的凭据将无法解密，所有用户都必须重新关联账户。
</Accordion>

<Accordion title="通过 URL 链接的文件">
  **通过 URL 链接的文件**由你的部署代表用户获取，因此目的地是用户提供的任意地址。除非你将 `url` 添加到 `ENABLED_LINKED_FILE_TYPES` 中，否则 URL 链接文件功能处于禁用状态，默认配置中不包含该项。通过 Open in Overleaf API 进行的外部 ZIP 和 TeX 导入也使用同一个 `linked-url-proxy` 组件。直接请求会解析目标主机名并拒绝受限的网络范围，但受所配置的允许资源例外规则约束。配置了 `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` 后，主机名由出站代理解析，因此代理本身必须实施内网访问限制；应用层的网络检查仅适用于包含 IP 地址的 URL。详情请参阅[外部 URL — 出站代理](/zh-CN/on-premises/configuration/overleaf-toolkit/external-url#outbound-proxy "mention")。这些请求只是获取所提供的 URL，而不会上传项目文件。
</Accordion>

如果你的策略要求设置出站白名单，请只放行你已启用功能所需的主机——GitHub 需要 `github.com` 和 `api.github.com`，Zotero 需要 `www.zotero.org` 和 `api.zotero.org`，Mendeley 需要 `api.mendeley.com`，文档需要 `learnwiki.overleaf.com` 或你自己的 `WIKI_URL`，密码检查需要 `api.pwnedpasswords.com`，CAPTCHA 需要 `www.google.com`，此外还有你自己的邮件服务器和身份提供商。如果启用了 AI 功能或搜索，还需放行所配置的模型、网页搜索和文档 MCP 端点。拒绝所有已启用功能不需要的目的地。如果出站流量必须集中检查或记录，可以通过设置 `GITHUB_SYNC_PROXY_URL`、`MENDELEY_PROXY_URL` 和 `ZOTERO_PROXY_URL`，分别让 GitHub、Zotero 和 Mendeley 集成经由 HTTP 代理。URL 链接文件获取和远程导入可以使用 `OVERLEAF_LINKED_URL_OUTBOUND_PROXY`。通过 URL 链接的文件无法限制在某个主机列表内，因为目的地是由用户在请求时选择的；请通过代理组件自身的允许资源设置来限制该功能，或保持其禁用状态。

<Warning>
  如果你在启用 [s3.md](/zh-CN/on-premises/configuration/overleaf-toolkit/s3 "mention") 存储的情况下部署 Ayakaleaf Pro，S3 中存储的数据是否加密？

  *<strong>不加密。</strong>* 数据未经加密。所有历史块、模板文件、PDF 和其他文件均以明文存储。如果你使用第三方外部 S3 存储提供商，请务必密切关注数据安全和隐私。
</Warning>

### 项目编译是隔离的吗？

Ayakaleaf Pro 支持沙盒编译。每次编译都在单独的容器中运行。沙盒容器默认没有网络访问权限，这减少了对内部网络资源的暴露。

沙盒编译需要访问宿主机的 Docker 套接字。请将主机管理权限限制给受信任的运维人员。

### 我可以信任 CI 构建和容器镜像吗？

Ayakaleaf Pro 的容器镜像由 GitHub Actions 构建和发布。镜像可从公开的 GitHub Container Registry 获取。

镜像支持 `amd64` 和 `arm64`。拉取镜像时，Docker 会自动选择匹配的架构。

不要在生产环境中使用 `latest` 标签。请固定明确的版本，最好使用镜像摘要（digest）。

在非生产环境中测试每一次升级。在正式上线前，验证镜像、配置和集成。

### 代码是开源的吗？

Ayakaleaf Pro 及相关功能仓库均已公开。这使用户能够审查变更并追溯上游来源。

公开的源代码便于独立审查，但其本身并不能保证发布构建是可复现的。

升级之前，请检查：

* 发布标签或提交。
* 镜像版本或摘要。
* 第三方依赖项及许可证要求。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.