支援安全

安全

複製頁面

Workflow Webhooks 的建構基礎、運作位置、您的 Webhooks、密鑰與傳送內容如何進行加密與隔離,以及我們如何保持應用程式最新。全程不使用 PHP。

「Workflow Webhooks」由 Code Creation Labs 開發並營運。本頁面說明此應用程式的組成、運作位置、您的商店資料如何受到保護,以及我們如何確保所有內容保持最新。本頁面主要針對商店店主以及任何填寫安全問卷的人士而撰寫。 法律相關事項(隱私權政策、資料處理協議、次級處理者)請參閱 法律與資料保護。

這款應用程式是基於什麼建構的

圖層 我們使用什麼
應用程式代碼 在 Node.js 上運作的 TypeScript,這是當前的長期支援版本。管理頁面、接收您的 Webhook 的端點,以及將其轉交給 Shopify Flow 的工作程序,皆基於同一套程式碼庫。
資料庫與快取 PostgreSQL(Google Cloud SQL)與 Redis(Google Cloud Memorystore)
佇列 來電一經接聽,便會排入 Google Cloud Pub/Sub 的佇列,並由獨立的工作程序進行處理,因此即使遇到來電激增或 Shopify 回應遲緩的情況,也不會遺漏任何一則訊息的傳送。
主機代管 位於 Google Cloud「europe-west1」(比利時,歐盟)區域中的 Google Kubernetes Engine 容器。資料庫、快取和佇列均位於該區域內。
Shopify 整合 Shopify 的官方應用程式函式庫、Shopify Flow 的觸發器與動作,以及 Shopify 的 Webhooks
您的店面 您的佈景主題中沒有任何程式碼在執行。瀏覽器呼叫所用的可選應用程式代理伺服器網址(請參閱 CORS、應用程式代理伺服器網址與瀏覽器呼叫)由 Shopify 在您的自有網域上提供,並透過 Shopify 的簽名進行驗證。

該服務中完全不包含 PHP、WordPress、Java 或其他任何執行環境。此應用程式已上架至 Shopify 應用程式商店,並通過 Shopify 的應用程式審核,該審核涵蓋了 Shopify 的安全性及客戶資料保護要求。

您的資料如何受到保護

**傳輸過程中。**您的瀏覽器、Shopify、呼叫您的 Webhook 的系統以及該應用程式之間的每項連線均採用 TLS 加密。資料庫、快取和佇列均無公開位址:僅能透過我們的私有網路從內部存取。

**靜態儲存。**所有資料庫和儲存空間在靜態儲存時均會透過我們在 Google Cloud KMS 中管理的金鑰進行加密。

**此外還採用欄位層級加密。**最敏感的值會加上第二層保護:您商店的 Shopify 存取憑證、每個 webhook 的驗證密鑰,以及您為轉換函式儲存的每項機密。 每個值皆使用 Cloud KMS 中的獨立金鑰,透過 AES-256-GCM 進行個別加密,並啟用自動金鑰輪替機制;僅在需要時才於記憶體中進行解密。機密資訊絕不會寫入日誌,也不會透過開發者 API 傳回,更不會傳送至 Sidekick。

**機密資訊。**服務本身的 API 憑證和金鑰儲存在 Google Secret Manager 中,並會在服務啟動時載入。這些資訊既不在程式碼中,也不在容器映像檔中,更不在建置流程中。

**資料最小化。**此應用程式在安裝時不會要求存取您商店的資料:啟動 Shopify Flow 工作流程無需任何權限,且該應用程式絕不會自行讀取商品、訂單或客戶資料。每次傳輸所攜帶的資料量,完全等同於呼叫系統所傳送的內容。

誰可以存取哪些內容

  • **僅限您的儲存庫。**每筆記錄都標示其所屬的儲存庫,且每項查詢的範圍皆限於已通過驗證的該儲存庫。一個儲存庫絕無法讀取或修改其他儲存庫的 webhook 或傳送項目,而同步回應會根據提出請求的儲存庫進行鍵值映射。
  • **僅限經過驗證的請求。**Shopify 管理後台內的頁面會透過 Shopify 會話憑證進行身份驗證。Shopify Flow 回調及 Shopify 自身的 webhook 會在觸及任何資料之前,透過 Shopify 的 HMAC 簽名進行驗證;而內部訊息則透過 Google 簽署的身份憑證進行驗證。
  • **您的 Webhook,您的規則。**每個 Webhook URL 皆無法被猜測,且您可以自行決定呼叫者應如何驗證身分:使用靜態憑證、對內容本體進行 HMAC 簽名,或是對於無法簽名的來源則不作任何驗證。 可選的 IP 白名單 能進一步限制呼叫者;呼叫者的位址取自網路連線,而非來自標頭,因此無法被偽造。系統會識別重複傳送的訊息,並僅處理一次。請參閱 驗證。
  • **轉換函式。**您為 變換函數 編寫的 JavaScript 程式碼,會在設有時間與記憶體限制的隔離沙盒中執行,且該沙盒所處的基礎架構與應用程式本身的伺服器相互獨立。該程式碼絕不會接觸到應用程式的憑證或您的 Shopify 存取憑證,且其外發請求在建立連線前,會先針對私有網路範圍進行驗證。
  • **外發請求。**應用程式代表您呼叫的 URL(包括 排程式 URL 輪詢 和 從 Shopify Flow 呼叫 webhook),會在建立連線前進行檢查:將拒絕任何來自迴路、鏈路本地、雲端元資料及私有網路的位址,即使是透過重定向亦然。
  • **我們的團隊。**僅能透過 Google Cloud IAM 及個別帳戶存取生產系統。內部維護工具不會對外公開。

我們如何讓應用程式保持最新狀態

  • **每項變更在發布前都會經過掃描。**此流程會執行類型檢查與程式碼審查、靜態應用程式安全測試(SAST)、機密資訊偵測、依賴項漏洞掃描以及容器映像檔掃描。我們的發布標準是:依賴項與映像檔中不得存在任何已知漏洞。
  • **執行環境與作業系統。**該容器映像檔(基於 Alpine Linux 的 Node.js)會在每次發行時重新建置,因此執行環境與作業系統的修補程式會持續推送。託管式 Kubernetes 平台會確保底層節點始終保持最新修補狀態。
  • **Shopify 平台。**我們會追蹤 Shopify 的 API 版本以及 Shopify 應用程式函式庫的安全公告,並及時套用更新。此應用程式運行於最新的 Admin API 版本上。
  • **安全性審查。**我們會定期對每條路徑、資料路徑及資料庫查詢進行全面的內部審查,最近一次審查於 2026 年 10 月進行。
  • **監控。**系統全天候監控可用性,並將結果發佈於我們的狀態頁面,一旦發生錯誤便會觸發警示。運作日誌最長保存 30 天,且絕不包含任何憑證或機密資訊。

資料保留與刪除

  • 只要應用程式仍安裝在裝置上,傳送記錄就會保留,讓您能夠檢視和重播通話內容,並可隨時刪除相關記錄。在儲存傳送記錄之前,任何可能包含憑證的標頭都會被遮蔽。
  • 當您解除安裝該應用程式時,其對您商店的存取權限將立即被刪除。Shopify 的 shop/redact 請求會在解除安裝後 48 小時內執行,並清除商店中剩餘的所有資料,包括您的轉換函式所儲存的所有內容。
  • Shopify
  • 次級資料處理者及完整的資料保留時程表詳見隱私權政策。如需索取已簽署的資料處理協議,請寄信至 workflow-webhooks.app/dpa。

回報安全問題

如果您認為發現了安全漏洞,或需要填寫安全問卷,請發送電子郵件至 support@codecreationlabs.com。我們會優先審閱並回覆安全報告。