全部產品
Search
文件中心

Edge Security Acceleration:配置跨域資源共用

更新時間:Jan 08, 2026

通過在邊緣安全加速 ESA上配置HTTP回應標頭,為網站啟用跨域資源共用CORS(Cross-Origin Resource Sharing),從而允許瀏覽器安全地從不同源載入和訪問資源。

為什麼要配置跨域資源共用

image

Web應用通常採用前後端分離的架構,前端應用(例如 http://example.com)需要從後端API(例如 http://example.org/api)擷取資料。由於瀏覽器的同源策略限制,預設情況下,這種跨源的HTTP請求會被禁止,導致前端應用無法正常工作。image

通過在邊緣節點配置CORS策略,解決此跨域訪問問題。實現瀏覽器能夠驗證來自 http://example.org/api 的響應,並允許 http://example.com 的指令碼訪問這些響應資料,同時確保只有授權的源才能進行訪問。

方案架構

CORS的實現依賴於瀏覽器與伺服器之間的一套HTTP頭部協商機制。將CORS配置部署在ESA邊緣節點,可以在請求到達來源站點之前處理跨域邏輯,從而在ESA網路的邊緣實現統一的策略管理。

image
  1. 請求發起:位於 http://example.com 的前端應用發起請求,訪問http://example.com/index.html資源。

  2. 邊緣節點處理ESA邊緣節點判斷請求內容是否存在緩衝,若有則直接返回緩衝內容,若無則回源擷取並緩衝後返回。

  3. 邊緣節點響應:成功響應用戶端請求內容(index.html檔案),返回200 OK

  4. 用戶端處理:用戶端執行HTML中的指令碼。

  5. 跨域請求發起:用戶端針對指令碼中的跨域內容發起請求GET http://example.org/api,並帶有要求標頭Origin:http://example.com

  6. 邊緣節點處理跨域請求:根據請求特徵判斷是否符合規則條件(例如:標題Origin的值等於http://example.com),若滿足則添加CORS頭Access-Control-Allow-Origin:http://example.com

  7. 邊緣節點響應跨域請求:成功響應跨域請求內容,返回200 OK

  8. 用戶端處理跨域請求:用戶端檢查回應標頭中的 Access-Control-Allow-Origin 是否匹配當前頁面源(http://example.com),若匹配則正常響應並展示內容

配置樣本:開啟跨域資源共用

說明

若使用OSS作為來源站點,OSS與ESA控制台同時配置CORS,ESA的配置將覆蓋OSS的跨網域設定

針對所有請求生效

情境描述

允許當前網站(如example.com)下的所有請求均可跨域訪問任意地址上的資源。

配置步驟

  1. 在ESA控制台,選擇網站管理,在網站列單擊目標網站。

  2. 在左側導覽列,選擇規則 > 轉換規則,在轉換規則頁面選擇修改回應標頭頁簽,選擇回應標頭位置為ESA到用戶端,單擊新增規則按鈕。image

  3. 新增修改回應標頭規則頁面根據業務需求填寫相關欄位。可參考以下填寫:

    1. 規則名稱:填寫自訂規則名稱,如rule-cors-for-all

    2. 如果請求匹配以下規則...:設定規則條件,用於匹配和過濾用戶端請求。本例中選擇所有傳入請求即可。

    3. 則執行…:設定修改回應標頭的規則執行動作,本例中填寫:

      • 類型:選擇靜態

      • 操作方式:選擇添加

      • 回應標頭名稱:輸入Access-Control-Allow-Origin

      • 回應標頭值:輸入*

    image

配置效果

在進行任意跨域請求時,ESA都會在回應標頭中增加Access-Control-Allow-Origin:*,瀏覽器即可成功響應並展示跨域資源。

image

針對指定請求生效

情境描述

針對用戶端請求中攜帶的origin標題的值包含網域名稱example.com下的任意子網域名稱,並且同時支援http協議和https協議,例如以下情況都允許跨域訪問資源:

  • origin:http://www.example.com

  • origin:https://www.example.com

  • origin:http://image.example.com

  • origin:https://image.example.com

在響應中添加CORS頭,CORS回應標頭內容與要求標頭中的origin一致。

配置步驟

  1. 在ESA控制台,選擇網站管理,在網站列單擊目標網站。

  2. 在左側導覽列,選擇規則 > 轉換規則,在轉換規則頁面選擇修改回應標頭頁簽,選擇回應標頭位置為ESA到用戶端,單擊新增規則按鈕。image

  3. 新增修改回應標頭規則頁面參考以下填寫:

    1. 規則名稱:填寫自訂規則名稱,如rule-cors-origin

    2. 如果請求匹配以下規則...:設定規則條件,用於匹配和過濾用戶端請求,只對滿足特定條件的請求執行添加回應標頭的操作。本例中填寫標題 origin的值 與Regex匹配 ^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$

      也可直接編輯運算式如下:(http.request.headers["origin"] matches "^https?://(?:[a-zA-Z0-9](?:[a-zA-Z0-9\-]*[a-zA-Z0-9])?\.)+example\.com$")
      說明

      若您的套餐不支援使用Regex匹配,可以使用運算子等於其中任意一個來匹配,並枚舉出允許跨域的origin標題值。

      也可直接編輯運算式如下:(http.request.headers["origin"] in {"http://www.example.com" "https://www.example.com" "http://image.example.com" "https://image.example.com"})

      image

    3. 則執行…:設定修改回應標頭的規則執行動作,本例中填寫:

      • 類型:選擇動態

      • 操作方式:選擇添加

      • 回應標頭名稱:輸入Access-Control-Allow-Origin

      • 回應標頭值:輸入http.request.headers["origin"]

    image

配置效果

在進行跨域請求時,請求中的origin頭符合規則時,則ESA將在回應標頭中增加Access-Control-Allow-Origin標題,標題值內容與用戶端請求中攜帶的Origin標題的值相同,瀏覽器即可成展示跨域資源。

image