Skip to main content
JGJenks Guo

文件 / explanation

安全與隱私

公開與管理介面能與不能做什麼、如何保護管理權杖與 GitHub 存取,以及訪客資料會如何處理。

兩種存取

公開——任何人,無需憑證。REST API(/api/v1/*)、公開的 MCP 伺服器(/mcp)、CLI 的公開指令與靜態檔案皆為唯讀。它們只揭露已發布的語料庫,該語料庫依設計即為公開。ask_jenks 與網站聊天會呼叫語言模型,為防濫用,會依 IP 位址進行速率限制。

管理——僅限 Jenks。/api/admin/*、/mcp/admin、jenks admin … 與位於 /admin 的主控台需要在 Authorization: Bearer 標頭中提供 Jenks 的個人管理權杖。有了它,呼叫者可以驗證、寫入與刪除內容檔案,並將 dev 提升為 main。這是很大的權限,因此該權杖視同密碼對待。

管理權杖

  • 它儲存在 macOS 鑰匙圈中,名稱為 agent-env:JENKSGUO_ADMIN_TOKEN,僅在需要時載入至 shell。決不會寫入內容、提交、會被分享的組態檔,或聊天中。
  • Worker 以加密的秘密儲存,並以常數時間比較。
  • /admin 主控台從不儲存該權杖。登入時僅一次以 POST 送至 /api/admin/login,其會設定 HttpOnly、Secure、SameSite=Strict 的工作階段 cookie(12 小時;啟用 "remember" 為 14 天)。頁面腳本無法讀取該 cookie,且以 cookie 驗證的寫入還必須送出 x-jenks-admin 標頭,而跨站表單無法設置該標頭。
  • 若可能外洩請輪替:產生新權杖、存入鑰匙圈、更新 Worker secret,舊權杖會立刻失效——所有主控台工作階段也會同時失效,因為工作階段以從該權杖導出的金鑰簽署。

管理 API 能觸及的範圍

寫入僅限於內容路徑的允許清單——語料條目、lenses、skills、核心文件、翻譯詞彙表與本文件。它不能變更程式碼、工作流程、機密或 content/ 之外的任何東西。每次寫入都會先依內容綱要驗證。

GitHub 存取

管理端寫入會透過 GitHub API,以僅涵蓋單一儲存庫且只具備發佈所需權限的細粒度個人存取權杖,轉為提交。該權杖以加密的 Worker secret 儲存。由於每項變更都是一次提交:

  • git 歷史即稽核日誌——誰在何時變更了什麼,以及原因(提交訊息),
  • 永遠可復原——任何檔案的較早版本都能還原。

風險較高的變更可先在 dev 分支暫存,並於 https://dev.jenksguo.xyz 檢查,之後才上線。

訪客隱私

  • 無廣告追蹤器與行銷 cookie。
  • 聊天記錄僅保存在訪客的瀏覽器(sessionStorage),分頁關閉即清除。本站不儲存對話記錄。
  • 聊天訊息會透過 Cloudflare Worker 傳送至 OpenRouter,由其轉送至第三方語言模型。並請訪客勿分享敏感個資。
  • 語音輸入在可用時使用瀏覽器內建語音辨識;否則音訊會傳送至 OpenRouter 進行轉寫。語音回覆使用裝置的語音合成。
  • Cloudflare 會保留標準請求記錄以供安全性與速率限制之用。

內容隱私

content/ 底下的所有內容皆為公開。Jenks 的履歷曾包含電話、住址與推薦人聯絡方式;這些均不在語料庫中,且不得加入。關於他人的事實僅限於描述 Jenks 職責所需。

問題回報

請寄信至 jenksguo@gmail.com 並附詳情。未經允許請勿測試管理介面。

.md本頁內容在 AI 協助下翻譯;官方職稱保留英文。