Show Menu
主題×

Experience Cloud Identity 服務的 CORS 支援

瀏覽器使用跨原始資源共用 (CORS) 來從目前網域以外的其他網域要求資源。Experience Cloud Identity 服務支援 CORS 標準,以允許這些用戶端的跨原始資源要求。此 ID 服務在舊版瀏覽器或不支援 CORS 的瀏覽器上會回復為 JSONP 要求。

相同來源政策和 ID 服務要求的問題

相同來源政策是網頁瀏覽器實作的安全控制或限制。在此層級實作時,網頁瀏覽器會自行判斷是否應允許或是封鎖從一個頁面向另一個頁面提出的資源要求。為了判斷某個要求是否為相同來源要求,瀏覽器會比較:
  • 統一資源識別碼 (URI)
  • 主機名稱 (例如 http://www.my-webpage-example.com)
  • 連接埠號碼 (例如連接埠 80 和 440 用於 HTTP 和 HTTPS 要求)
如果兩個頁面共用這些特性則瀏覽器會允許要求,若不共用則封鎖資源要求。

CORS 可解決相同來源政策的問題

CORS 提供在不同網域間要求資源的安全、有效方法。CORS 規格包含一組 HTTP 標題,供瀏覽器用來傳送、接收和評估資源要求。評估資源要求稱為​
preflight check
。這項檢查可讓瀏覽器和伺服器判斷應允許或是封鎖哪些要求。預檢檢查對於要求資源的應用程式、API 或指令檔是透明的。資源要求程序中有兩個很重要的標題:
  • Origin
    : 識別要求來源的要求標題。
  • Access-Control-Allow-Origin
    : 指出資源是否可與要求者共用的回應標題。
讓我們來看看這些標題如何運作。在此範例中,假設有一家金融服務公司已在其網站上實作 Experience Cloud ID 服務: www.finance-website.com 。下表定義 CORS 要求和回應標題如何檢查資源的存取權限。
動作
說明
請求
當金融公司頁面載入時,瀏覽器會向
dpm.demdex.net
提出要求。這是對 ID 服務所用資料收集伺服器 (DCS) 的網域提出的呼叫。此跨網域要求包含標題:
  • Origin:https://www.finance-website.com
回應
來自 DCS 網域的回應包含這些標題,提供金融公司網站對所需資源的存取權限:
  • Access-Control-Allow-Origin: https://www.finance-website.com
  • Access-Control-Allow-Credentials: true
另請參閱 useCORSOnly

使用 CORS 的其他好處

下表說明 CORS 能提供給使用 ID 服務之客戶的一些益處。
好處
說明
提高安全性
CORS 使用 XMLHttpRequest 來要求與傳輸資料。此方法比 JSONP 要求更安全。它可確保絕對無法執行 DCS 回應中可能包含的任意 JavaScript。CORS XMLHttpRequest 回應裝載是由 ID 服務 JavaScript 剖析,不是單純在回撥函數中執行。
注意: 為了接受 Cookie,
XMLHttpRequest
物件的
withCredentials
屬性必須設定為
true
。Chrome、Firefox、Internet Explorer (10 以上版本)、Opera 和 Safari 都支援此屬性。
改進效能
由於以下原因,CORS 有助於改進效能:
  • 由瀏覽器管理資源要求。要求過程對 ID 服務是透明的。
  • 不同於非同步 JSONP 要求,瀏覽器不會取消優先順序並將 CORS 要求排入佇列。
  • ID 服務會以許可方式回應。這表示當以
    Origin
    傳入 URL 時,ID 服務會授予必要資源的頁面存取權限。