信任中心 · 目前狀態

工作區就是那條界線,而錢從來不經過我們。

一項一項說明:一個工作區怎麼跟其他工作區隔開、已發佈的網站怎麼用商家自己的 Stripe 金鑰刷卡,以及我們的主張到哪裡為止。

狀態現況 · 對著執行中的服務核對過生效日適用範圍Naratake 瀏覽器版服務

01 · 準備度一覽

三種狀態,分開講。

已實作

應用層的邊界

權限由工作區決定、資料存取一律綁租戶、壓縮檔與圖片有大小與格式上限、版本不可竄改、寫入必須同源、上線前先檢查資格、可以回到前一版,還有一個連網站應用程式自己都解不開的金鑰保險庫——這些都已經寫進程式,也有自動化測試在跑。

有條件

要靠服務商的控制

Clerk 身分驗證、Postgres 角色與資料列層級政策、私有物件儲存、Stripe 收款,以及建置與部署那條線,在正式環境都已經設定好;而且服務會自己重讀那份設定,不會因為部署過就當它還在。少了什麼或格式不對,一律拒絕:付款無法同時開通買到的東西,就賣不出方案;沒有背景程序最近通過自我測試,網站就不會上線。

不宣稱

應用程式以外

獨立的安全評估、演練過並量出恢復時間的還原流程、事故回應的時間承諾,這一頁都不宣稱。這一頁宣稱的是左邊那一欄,而那一欄每一行都在出貨的程式碼裡。

02 · 身分與授權

在哪裡登入,不決定你在 Naratake 裡有什麼權限。

  • Clerk 負責驗證使用者與目前的組織,而正式環境的執行個體帶著那道驗證需要的身分金鑰。
  • 要開啟一次應用程式工作階段,必須有啟用中的工作區,而且資料庫裡要有這個人的成員紀錄,一筆不差。
  • 權限以資料庫裡的角色為準:擁有者、管理員、設計師、營運人員、檢視者,各有各的權限。
  • 一般授權完全不看服務商那邊的組織角色;只有「第一位擁有者」的開通流程是個很窄的例外。
  • Studio 的頁面和 API 預設都要通過身分驗證。具名的例外有兩個:Stripe 帶簽章的那一條 webhook POST,以及 /api/health/ready 這個就緒端點——它是刻意公開的,回報平台此刻服不服務得了客戶,不帶任何顧客資料或憑證,而且有一支巡檢每十五分鐘打它一次。你可以自己去開。
  • 本機開發用的略過機制,必須同時處於開發模式、明確打開旗標,而且主機名稱指向本機,或以 .localhost 結尾。

一個工作區只有一位擁有者,所以團隊邀請、服務商與資料庫之間的成員同步、改角色的自動化與稽核事件,都不在這一頁的範圍裡。

03 · 租戶資料的界線

瀏覽器沒辦法指定要動哪個工作區。

專案與素材的路由,工作區代號一律從伺服器上已驗證的工作階段取得。網址裡只有專案或素材的代號,決定不了要存取哪個租戶。資料庫這一層用的是不能繞過權限的應用程式角色,並且在交易裡先設好工作區範圍,才開始查租戶的資料。

專案文件每個版本都不可竄改,引用時一定帶著租戶與專案範圍,並附上伺服器算出的 SHA-256 與位元組大小。
素材檔案私有檔案一律經過需要驗證的路由才送出;儲存金鑰和服務商的私有網址只留在伺服器端。
用量上限專案數、儲存空間、版本數、上傳頻率、同時寫入數都有上限,用來擋濫用。
刪除的緩衝刪除先做邏輯標記,再交給延後、會檢查引用的清理流程;真正把檔案刪掉是背景工作的事,不會在請求當下做。

經過審查的遷移,對應用程式角色碰得到的每一張租戶資料表,都啟用並強制資料列層級安全;任何租戶查詢之前,工作區範圍都已經在交易內設好。至於部署上去的資料庫角色有沒有帶著繞過權限,那是要在正式的 Postgres 服務上做的維運核對,不是應用程式能自己證明的事。

04 · 請求與檔案安全

不可信的輸入,一律先撞到上限。

  • 任何會改動資料的路由,都要有通過驗證的角色,而且請求必須完全同源。
  • 儲存時會檢查版本前提條件與冪等鍵;過期的寫入會被擋下來,不會默默蓋掉比較新的版本。
  • 匯入的專案壓縮檔會逐項檢查:路徑是否正規、是不是只有一份專案文件、檔案數、解壓後大小、壓縮比、JSON 複雜度、結構定義有沒有支援,以及專案身分是否相符。
  • 雲端圖片有大小上限、讀取時逐段設限,而且只有在宣告的格式與檔頭特徵位元組相符、且屬於支援的點陣格式時,才會收下。
  • 存好的專案包或素材要送出前,會先核對伺服器算出的雜湊值。
  • 沒設定好資料庫或私有物件儲存時,直接回「服務無法使用」;正式環境不會退回用瀏覽器或記憶體暫存。

05 · 上線發布安全

還不支援的東西,在切成正式版之前就會被擋下來。

上線會把一次請求綁定到一個不可變的、已審核的版本。資格由專案實際用到的元件、它們需要的模組,以及相關的交付替換算出來。Naratake 專案是一個背後有資料庫的完整應用:完整交付會開好那個資料庫與後台,由 Pro 方案販售;純店面交付是同一個網站拿掉寫入面,拿掉了哪些會逐條列在發佈報告裡。一個工作區能請求哪一種,由提交交易內的權益決定,不是由前端決定。

  1. 01
    凍結

    把這次請求綁在指定的版本,以及伺服器已驗證過的專案包上。

  2. 02
    在正式環境之外建置

    交給背景工作,依照固定的介面產生一份有上限規範的發布產物。

  3. 03
    驗證

    在切換正式版指標之前,先確認產物與發布狀態都對。

  4. 04
    切成正式版,或退回上一版

    保留發布紀錄,隨時可以選回先前驗證過的版本。

完整交付會為網站開一個自己的資料庫與商家後台,訪客送出的訂單、訂位、預約、顧客資料與名單都存得住。只有方案同時具備商務與預約兩個模組的工作區才拿得到。純店面交付發佈的是同一個網站但不含訪客會寫入的部分,被移除的每個區塊都會列在發佈報告裡。已發佈網站的線上刷卡,用的是商家自己的 Stripe 金鑰:發佈時從工作區的金鑰保險庫讀出,只寫進那一個網站;兩把必須齊全且模式一致,否則網站會以「沒有結帳」發佈,而不是發佈一個壞掉的結帳。那筆錢 Naratake 從不經手,也不抽成——Stripe 自己的刷卡手續費照收,在哪裡都一樣。你已經擁有的自訂網域,兩個方案各掛一個,並為它簽發 HTTPS。

06 · 金流的界線

金流在正式環境已經設定好,而且設定不齊就一律拒絕。

瀏覽器只能挑一個核可過的方案代號。實際對應到 Stripe、產生正規的返回網址、在呼叫服務商之前先寫下一筆持久的冪等紀錄,都由伺服器負責。Stripe 的 webhook 只有一條路由:它讀取有大小上限的原始內容,驗簽章、驗 API 版本,重複或順序顛倒的事件則靠持久紀錄與游標處理。

服務商的客戶、結帳與訂閱代號,都走一個權限很窄的專用計費角色;一般工作區的資料庫帳號碰不到全域的計費紀錄表。正式環境裡,方案目錄與它的 Stripe 價格對應都讀得出來、結帳依目前模式設定完成、webhook 簽章密鑰也在。這三項執行中的服務會逐項檢查,少一項就把自己標成未就緒,因為「卡刷得下去、東西卻開通不了」正是最該擋下來的失敗。另有一支每小時執行的巡檢,重讀那些流程拒絕套用、又會動到錢的 webhook 決定;只要還有沒清掉的,它就會失敗。

07 · 我們的主張到哪裡為止

沒有證據,就不掛信任標章。

沒有 SOC 2 或 ISO 27001 認證。上面那些控制是我們拿得出來給你看的,不是稽核師背書過的Naratake 不宣稱取得 PCI 認證。卡號一律在 Stripe 自己的頁面上輸入,Naratake 的表單從來收不到一組卡號沒有外部滲透測試,也沒有公開的漏洞獎金計畫。回報會直接送到寫這段程式的工程師手上不宣稱通過任何加密認證。存起來的服務商金鑰用 AES-256-GCM 封裝,而且綁定它所屬的工作區,但那是我們自己的實作,不是認證過的方案沒有驗證過的還原。資料庫的加密備份每天排程執行,存放在資料庫服務商之外,每一份都檢查過讀得出來;但還原還沒演練過,所以我們不報恢復時間沒有可用率或事故回應的 SLA。沒量過的數字,我們不會拿出來寫沒有一鍵刪除帳號或工作區。刪除要來信提出,先確認你在那個工作區的權限,才會動任何資料自訂網域兩個方案各一個,掛的是你本來就擁有的網域;但不承諾確切的生效時間,DNS 與憑證簽發的時序在註冊商與主機端沒有經第三方稽核的正式付款全程紀錄。金流這條路有自動化測試,也有上面那些設定檢查在看著,但還沒有外部單位追過一筆真實刷卡不經手商家的錢。已發佈網站上的刷卡走商家自己的 Stripe 金鑰,直接結算進商家自己的帳戶;我們不抽成,而 Stripe 自己的刷卡手續費照收,在哪裡都一樣不賣 AI 用量,也沒有一套我們自己的模型。兩個雲端方案都直接不開放 AI 生成,瀏覽器版 Studio 也不保管任何供應商金鑰。會幫你寫草稿的助手屬於桌面版 LocalSite Studio:填了你自己的 Anthropic、OpenAI 或 DeepSeek 金鑰(放在那台機器的作業系統鑰匙圈裡),請求就從你的機器直接打到供應商,你送出去的字一個都不會經過我們。唯一的例外是桌面版授權附的那份額度——那條路本來就沒有金鑰可用,所以那些呼叫確實會經過我們的授權伺服器,由它用我們自己的帳號轉送出去;它留下的是每份授權每個月的次數,不是你送出去的內容

正式環境一定走 HTTPS,而傳輸與儲存的保護,建立在我們設定並持續重讀的那些服務商上。我們把這件事當成拿得出來給你看的工程,而不是一套通過獨立認證的加密方案。

08 · 客戶要顧的部分

安全,也是團隊的日常習慣。

  • 顧好登入用的帳號;服務商有提供多重驗證,就把它打開。
  • 角色給剛好夠用的就好;有人不再需要這個工作區,就把權限收回來。
  • 不要把密碼、私鑰、客戶的機密或信用卡號,貼進頁面文字、專案備註、客服信件或公開素材裡。
  • 每次上線前,把內容、連結、表單、政策、串接,還有對外公開的營業資訊都看過一遍。
  • 在還原流程演練過、恢復時間也公布出來之前,重要的原始內容請自己另外留一份。
  • 懷疑帳號、工作區或已上線的網站被入侵,請盡快告訴我們。

資料怎麼處理,請看隱私權聲明;什麼可以做、上線責任歸誰,請看服務條款。

09 · 回報安全問題

請給我們足夠的細節,讓我們能安全重現。

寄一封簡短的信,說明受影響的 Naratake 網址或畫面、影響範圍、可以重現的步驟,以及一個安全的概念驗證。請不要存取其他客戶的資料、影響服務運作、把內容帶走、做阻斷服務測試,也不要在信裡附上有效的金鑰或敏感個資。回報會直接送到寫這段程式的工程師手上。我們沒有公開的漏洞獎金計畫。

安全問題回報support@naratake.com主旨請直接用英文「Security report for Naratake」,點上面的信箱連結會自動帶上。如果內容本身很敏感,先來信問我們安全的傳送方式。