Skip to main content

2026 年 7 月 20 日

強制驗證來源 HTTP 標頭

為了強化對跨來源資源共用 (CORS) 相關攻擊的保護,系統預設會根據 Horizon 設定中的允許來源清單,驗證 HTTP 要求中 (若存在) 所包含的來源 HTTP 標頭。此清單包括:

  • 根據網路組態、Horizon 設定與高可用性設定動態計算出的來源。所有這些來源皆會自動允許。
  • 可由管理員明確設定的來源。

自動允許清單

儲存 Horizon 設定時,系統會自動將以下項目新增至允許清單。自動允許清單中的項目無法由管理員刪除。

  • 個別網路介面 IP 位址
  • 系統組態中所指定的 UAG 名稱
  • 高可用性虛擬 IP
  • Tunnel 外部 URL 與 Tunnel URL (當未指定連接埠或指定為 443 時)
  • Blast 外部 URL 與 Blast URL (當指定連接埠為 443 時)

符合以下來源標頭格式的任何傳入要求皆會被允許:

  • https://<主機名稱或 IP>
  • https://<主機名稱或 IP>:443
  • <主機名稱或 IP>
  • <主機名稱或 IP>:443

明確設定的清單

如果傳入 Unified Access Gateway 的 HTTP 要求中,其來源標頭中的值不同於動態計算出的值,則管理員必須使用以下其中一種方法,將這些值明確地新增至允許清單中:

  • 使用 [管理員 UI] > [Edge 服務設定] > [Horizon 設定] 中的自動允許清單設定。
  • 使用 PowerShell 指令碼部署時透過 .ini 檔案設定。部署指令碼中包含一個範例 INI 檔案,可用來協助設定此清單。

範例組態

[Horizon]
....
originCheckEnabled=true
originHeaderDetailsList=1,2,3

[OriginHeaderDetails1]
origin=userorigin.com
rewriteEnabled=true

[OriginHeaderDetails2]
origin=tunnelurl.com
rewriteEnabled=false

[OriginHeaderDetails3]
origin=https://uag-origin.test.com:443
rewriteEnabled=true

依預設,對於自動允許清單中的所有項目,無論是在管理員 UI 中的重新寫入來源切換,或是在 .ini 檔案中的 rewriteEnabled 欄位,皆為停用狀態。若為指定的來源啟用此功能,且 HTTP 要求中的 [來源] 標頭包含此值,則當 Unified Access Gateway 將該要求傳送至 Horizon Connection Server 時,會將此 [來源] 標頭的值重新寫入為連線伺服器 URL 中所指定的值。

如果 HTTP 要求中的來源標頭值不在允許清單中,系統將回應 HTTP 404。

從舊版升級至 25.03

如果升級後傳送至 Unified Access Gateway 的 HTTP 要求中,其來源值不在自動允許清單中,則管理員必須手動新增該值。請參閱明確設定的清單

其他附註

  • 如果 Blast 外部 URLTunnel 外部 URL 使用相同的主機名稱或 IP 並指定連接埠為 443 (例如 https://horizon.xyz.com:443),則會自動允許該完全相符的 URL。但是,如果 HTTP 要求中的來源標頭為類似 https://horizon.xyz.com (未包含連接埠),且需要被接受,則管理員必須手動將其新增至自動允許清單。當指定連接埠為 443 時,若其他 Blast 外部 URL其他 Tunnel 外部 URL 欄位中有任何項目相同,亦會採取相同的處理行為。
  • 如果在管理員 UI 中關閉了需要檢查來源切換,或在 .ini 檔案中將 originCheckEnabled 設為 false,且自動允許清單中有任一項目的重新寫入來源切換為開啟狀態,則管理員必須手動在管理員 UI 中將該項目的重新寫入來源切換,或在 .ini 檔案中將該項目的 rewriteEnabled 欄位設為 false。
  • 若要接受來自 Chrome 原生用戶端的要求,請務必將 chrome-extension://ppkfnjlimknmjoaemnpidmdlfchhehel 明確新增至允許的來源設定中。

此頁面對您有幫助嗎?

針對本主題提供意見回饋

本主題對您有幫助嗎?

請勿填寫任何個人或機密資訊。

正在產生連結…