> ## 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.

# Tin cậy và bảo mật

> Tìm hiểu về cách xử lý dữ liệu, phân phối bản build và trách nhiệm bảo mật.

Ayakaleaf Pro chạy trong hạ tầng của bạn. Bạn kiểm soát dữ liệu, quyền truy cập và ranh giới mạng của nó. Trang này giải thích mô hình bảo mật mặc định, đồng thời chỉ ra các trách nhiệm vận hành của bạn.

### Ayakaleaf Pro có đáng tin cậy và an toàn không?

Ayakaleaf Pro là một bản nâng cấp Overleaf Pro tự triển khai, và mã nguồn của chúng tôi có tại [ayaka-notes/ayakaleaf-pro](https://github.com/ayaka-notes/ayakaleaf-pro). Hệ thống triển khai của bạn quyết định nơi các dịch vụ chạy và nơi dữ liệu được lưu trữ.

Bảo mật phụ thuộc vào cấu hình và cách vận hành của bạn. Hãy bảo vệ quyền truy cập quản trị, bật HTTPS và duy trì các bản sao lưu.

Cảm ơn OpenAI vì sự hỗ trợ của họ. Chúng tôi sẽ thường xuyên sử dụng [Codex Security](https://chatgpt.com/codex/cloud/security/findings) để quét kho mã của mình nhằm tìm các vấn đề bảo mật và công khai kết quả khắc phục lỗ hổng.

### Dữ liệu của tôi đi đâu?

Theo mặc định, dữ liệu ứng dụng nằm trong hệ thống triển khai của bạn:

* MongoDB lưu dữ liệu người dùng và dự án.
* Redis lưu dữ liệu bộ nhớ đệm và dữ liệu cộng tác thời gian thực.
* Volume cục bộ hoặc bộ lưu trữ tương thích S3 chứa các tệp dự án.

Theo mặc định, chỉ có dịch vụ web được công khai ra ngoài. Các dịch vụ nội bộ giao tiếp với nhau qua mạng Docker.

### Dữ liệu của tôi có bị gửi đến hoặc lấy từ bên thứ ba nào không?

Không có gì rời khỏi hệ thống triển khai của bạn trừ khi bạn bật một tính năng yêu cầu điều đó. Ayakaleaf Pro *không gửi telemetry, không gửi phân tích sử dụng và không gửi báo cáo sự cố*. Báo cáo lỗi và phân tích đều bị tắt trong cấu hình mặc định.

Một số tính năng hoàn toàn không bao giờ gửi yêu cầu ra bên ngoài. Các mẫu được lưu trữ và phục vụ từ chính hệ thống triển khai của bạn. Python script runner thực thi trong trình duyệt của người dùng thông qua WebAssembly, và runtime của nó được phục vụ từ chính dịch vụ web của bạn thay vì từ CDN công cộng, vì vậy mã script và đầu ra không bao giờ ra mạng. Git Bridge chỉ có thể truy cập trong mạng Docker nội bộ. Tìm kiếm toàn dự án, bảng ký hiệu, theo dõi thay đổi, lịch sử dự án và bảng quản trị đều hoàn toàn cục bộ. Các container biên dịch sandbox được tạo với mạng bị vô hiệu hóa.

Các tính năng còn lại gửi yêu cầu đến những đích sau. Mỗi yêu cầu đều xuất phát từ dịch vụ web:

<Accordion title="Trợ lý AI và tìm kiếm">
  Các tính năng AI bị tắt theo mặc định. Khi được bật, tính năng trò chuyện và gợi ý sửa lỗi LaTeX sẽ gửi prompt cùng ngữ cảnh dự án liên quan đến endpoint mô hình được cấu hình bằng `AI_BASE_URL`. Tính năng tìm kiếm web tùy chọn gửi truy vấn đến dịch vụ tương thích Tavily đã cấu hình, và tìm kiếm tài liệu gửi truy vấn đến `DOCS_MCP_URL` (mặc định: `https://docs.overleaf.com/~gitbook/mcp`). Kết quả tìm kiếm có thể được đưa vào các yêu cầu gửi đến nhà cung cấp mô hình. Xem [Tích hợp AI](/vi/on-premises/configuration/overleaf-toolkit/ai-integration "mention") để biết về cấu hình và các tùy chọn kiểm soát cho người dùng.
</Accordion>

<Accordion title="Tích hợp GitHub">
  **Tích hợp GitHub** kết nối đến `github.com` và `api.github.com`. Tính năng này được bật cho từng người dùng bằng cách liên kết tài khoản GitHub, và việc ủy quyền yêu cầu các scope `read:org`, `repo` và `workflow`. Thao tác push tải lên toàn bộ nội dung tệp dự án dưới dạng Git blob, sau đó được ghép thành tree và commit. Nó cũng thực hiện các thao tác về nhánh, tham chiếu, so sánh và hợp nhất, đồng thời đọc hồ sơ, tư cách thành viên tổ chức và danh sách kho mã của tài khoản được liên kết. Nội dung dự án rời khỏi hệ thống triển khai của bạn theo cả hai chiều — hãy coi một tài khoản GitHub được liên kết là một đường xuất dữ liệu cho mọi dự án gắn với nó.
</Accordion>

<Accordion title="Tích hợp Zotero">
  **Tích hợp Zotero** kết nối đến `www.zotero.org` để ủy quyền và `api.zotero.org` để lấy dữ liệu thư viện. Tính năng này được bật cho từng người dùng bằng cách liên kết tài khoản Zotero. Quá trình bắt tay OAuth và API key của người dùng sẽ được gửi đi. Việc đọc chỉ diễn ra một chiều: các thư viện tài liệu tham khảo được kéo về dưới dạng BibTeX, và không có nội dung dự án nào được tải lên.
</Accordion>

<Accordion title="Tích hợp Mendeley">
  **Tích hợp Mendeley** kết nối đến `api.mendeley.com` cho cả việc ủy quyền lẫn dữ liệu thư viện. Tính năng này được bật cho từng người dùng bằng cách liên kết tài khoản Mendeley. Quá trình bắt tay OAuth yêu cầu scope `all` của Mendeley — scope duy nhất mà API của họ cung cấp — nhưng Ayakaleaf chỉ thực hiện thao tác đọc: các thư viện tài liệu tham khảo và thư viện nhóm được kéo về dưới dạng BibTeX, và không có nội dung dự án nào được tải lên. Access token được làm mới tự động; khi Mendeley thu hồi quyền, thông tin xác thực đã lưu sẽ bị loại bỏ và người dùng được yêu cầu liên kết lại tài khoản.
</Accordion>

<Accordion title="Các trang tài liệu">
  **Các trang tài liệu** được lấy từ `https://learnwiki.overleaf.com`, có thể cấu hình bằng `WIKI_URL`. Các yêu cầu được thực hiện bởi dịch vụ web chứ không phải trình duyệt của người dùng, vì vậy wiki upstream chỉ thấy máy chủ của bạn và không bao giờ thấy địa chỉ của người dùng. Chỉ có tiêu đề trang được yêu cầu được gửi đi, và các phản hồi được lưu đệm trên đĩa. Hãy trỏ `WIKI_URL` đến mirror của riêng bạn, hoặc chặn đích này, nếu lưu lượng tài liệu ra bên ngoài là không chấp nhận được.
</Accordion>

<Accordion title="Gửi email">
  **Gửi email** kết nối đến bất kỳ máy chủ SMTP hoặc API email nào mà bạn cấu hình; không có giá trị mặc định. Địa chỉ người nhận và nội dung thư sẽ rời khỏi hệ thống triển khai của bạn, bao gồm cả liên kết đặt lại mật khẩu và liên kết mời.
</Accordion>

<Accordion title="Hai kiểm tra tùy chọn (PWD/reCAPTCHA)">
  <strong>Hai kiểm tra tùy chọn bị tắt theo mặc định.</strong> Kiểm tra mật khẩu bị lộ không hoạt động trừ khi `HAVE_I_BEEN_PWNED_ENABLED` được đặt; khi được bật, nó gửi các ký tự đầu tiên của mã băm SHA-1 của mật khẩu đến `api.pwnedpasswords.com`, không bao giờ gửi chính mật khẩu. Xác minh CAPTCHA không hoạt động trừ khi một reCAPTCHA site key được cấu hình, và sẽ kết nối đến `www.google.com` khi hoạt động.
</Accordion>

<Accordion title="Đăng nhập một lần (OAuth/LDAP/SAML)">
  **Đăng nhập một lần** chỉ kết nối đến nhà cung cấp danh tính mà bạn chỉ định, và dữ liệu được truyền đi phụ thuộc vào giao thức. Với LDAP, dịch vụ web kết nối trực tiếp đến thư mục của bạn: nó bind bằng tài khoản dịch vụ mà bạn cấu hình, tìm kiếm theo base, filter và danh sách thuộc tính mà bạn định nghĩa, và xác minh mật khẩu nhập trên biểu mẫu đăng nhập với thư mục của bạn, do đó tên người dùng và mật khẩu sẽ đến máy chủ thư mục. Việc bật danh bạ dựa trên thư mục sẽ tạo thêm một lần tìm kiếm để điền danh sách liên hệ. Với OIDC, dịch vụ web trao đổi authorization code tại token endpoint của bạn rồi gọi user-info endpoint, mặc định yêu cầu các scope `openid profile email`; có thể cấu hình bằng `OVERLEAF_OIDC_SCOPE`. Với SAML, yêu cầu xác thực đi qua trình duyệt của người dùng đến nhà cung cấp danh tính thay vì qua kết nối trực tiếp giữa các máy chủ. Trong cả ba trường hợp, tên và địa chỉ email của người dùng được nhận từ nhà cung cấp chứ không phải gửi đến nhà cung cấp, sau đó được lưu trong bản ghi người dùng cục bộ.
</Accordion>

<Accordion title="Thông tin xác thực bên thứ ba">
  **Thông tin xác thực bên thứ ba** — OAuth token và API key — được lưu trong MongoDB trên bản ghi người dùng, được mã hóa bằng AES-256-CTR với salt và vector khởi tạo riêng cho từng bản ghi. Chúng không bao giờ được lưu dưới dạng văn bản thuần và không bao giờ được ghi vào log. Khóa mã hóa lấy từ `${PROVIDER}_CIPHER_PASSWORD` nếu được đặt (như Zotero và Mendeley); nếu không, một khóa sẽ được tạo ở lần sử dụng đầu tiên và được lưu bền trong data volume của bạn với quyền chỉ dành cho chủ sở hữu. Hãy sao lưu khóa đó cùng với data volume: nếu bị mất, các thông tin xác thực đã lưu sẽ không thể giải mã và mọi người dùng phải liên kết lại tài khoản của họ.
</Accordion>

<Accordion title="Tệp được liên kết từ URL">
  **Tệp được liên kết từ URL** được hệ thống triển khai của bạn tải về thay mặt người dùng, vì vậy đích đến là bất kỳ địa chỉ nào người dùng cung cấp. Tệp liên kết URL bị tắt trừ khi bạn thêm `url` vào `ENABLED_LINKED_FILE_TYPES`, và cấu hình mặc định không bao gồm giá trị này. Việc nhập ZIP và TeX từ bên ngoài thông qua Open in Overleaf API cũng sử dụng cùng thành phần `linked-url-proxy`. Các yêu cầu trực tiếp sẽ phân giải tên máy chủ đích và từ chối các dải mạng bị hạn chế, tùy theo các ngoại lệ tài nguyên được phép đã cấu hình. Khi `OVERLEAF_LINKED_URL_OUTBOUND_PROXY` được cấu hình, outbound proxy sẽ phân giải tên máy chủ, vì vậy nó phải tự thực thi các hạn chế về mạng nội bộ; các kiểm tra mạng của ứng dụng chỉ áp dụng cho các URL chứa địa chỉ IP. Xem [External URL — Outbound Proxy](/vi/on-premises/configuration/overleaf-toolkit/external-url#outbound-proxy "mention") để biết chi tiết. Các yêu cầu này tải về URL được cung cấp chứ không tải lên tệp dự án.
</Accordion>

Nếu chính sách của bạn yêu cầu danh sách cho phép đối với lưu lượng ra ngoài, chỉ cho phép các máy chủ ứng với những tính năng bạn đã bật — `github.com` và `api.github.com` cho GitHub, `www.zotero.org` và `api.zotero.org` cho Zotero, `api.mendeley.com` cho Mendeley, `learnwiki.overleaf.com` hoặc `WIKI_URL` của riêng bạn cho tài liệu, `api.pwnedpasswords.com` cho kiểm tra mật khẩu, `www.google.com` cho CAPTCHA, cùng với máy chủ email và nhà cung cấp danh tính của riêng bạn. Nếu các tính năng AI hoặc tìm kiếm được bật, hãy cho phép thêm các endpoint mô hình, tìm kiếm web và MCP tài liệu đã cấu hình. Từ chối các đích không cần thiết cho những tính năng bạn đã bật. Khi lưu lượng ra ngoài cần được kiểm tra hoặc ghi log tập trung, các tích hợp GitHub, Zotero và Mendeley đều có thể được định tuyến qua HTTP proxy bằng cách đặt `GITHUB_SYNC_PROXY_URL`, `MENDELEY_PROXY_URL` và `ZOTERO_PROXY_URL`. Việc tải tệp liên kết URL và nhập từ xa có thể sử dụng `OVERLEAF_LINKED_URL_OUTBOUND_PROXY`. Tệp được liên kết từ URL không thể bị giới hạn trong một danh sách máy chủ, vì đích đến do người dùng chọn tại thời điểm gửi yêu cầu; hãy hạn chế tính năng đó thông qua thiết lập tài nguyên được phép của chính thành phần proxy, hoặc để nó ở trạng thái tắt.

<Warning>
  Nếu bạn triển khai Ayakaleaf Pro với bộ lưu trữ [s3.md](/vi/on-premises/configuration/overleaf-toolkit/s3 "mention") được bật, dữ liệu lưu trong S3 có được mã hóa không?

  *<strong>Không.</strong>* Dữ liệu không được mã hóa. Tất cả history chunk, tệp mẫu, PDF và các tệp khác đều được lưu dưới dạng văn bản thuần. Nếu bạn sử dụng nhà cung cấp lưu trữ S3 bên ngoài của bên thứ ba, vui lòng đặc biệt chú ý đến bảo mật và quyền riêng tư dữ liệu.
</Warning>

### Quá trình biên dịch dự án có được cô lập không?

Ayakaleaf Pro hỗ trợ biên dịch trong sandbox. Mỗi lần biên dịch chạy trong một container riêng biệt. Theo mặc định, các container sandbox không có quyền truy cập mạng. Điều này giảm mức độ tiếp xúc với các tài nguyên mạng nội bộ.

Biên dịch trong sandbox yêu cầu quyền truy cập vào Docker socket của máy chủ. Hãy giới hạn quyền quản trị máy chủ cho những người vận hành đáng tin cậy.

### Tôi có thể tin tưởng các bản build CI và container image không?

GitHub Actions build và phát hành các container image của Ayakaleaf Pro. Các image có sẵn trên GitHub Container Registry công khai.

Các image hỗ trợ `amd64` và `arm64`. Docker sẽ chọn kiến trúc phù hợp khi pull image.

Không sử dụng tag `latest` trong môi trường production. Hãy cố định một phiên bản cụ thể, tốt nhất là một image digest.

Kiểm thử mọi lần nâng cấp trong môi trường không phải production. Xác minh image, cấu hình và các tích hợp trước khi triển khai.

### Mã nguồn có mở không?

Ayakaleaf Pro và các kho mã tính năng liên quan đều được công khai. Điều này cho phép người dùng xem xét các thay đổi và truy vết nguồn upstream.

Mã nguồn công khai hỗ trợ việc đánh giá độc lập. Tuy nhiên, bản thân nó không đảm bảo các bản phát hành có thể build tái lập.

Trước khi nâng cấp, hãy xem xét:

* Tag hoặc commit của bản phát hành.
* Phiên bản hoặc digest của image.
* Các phụ thuộc bên thứ ba và yêu cầu về giấy phép.


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