視用戶端需求提供原則陳述式,並透過檢查要求是否符合原則,跨來源資源共用 (CORS) 功能可規範用戶端跨來源要求。您可以設定此功能並在必要時加以啟用。

原則包括可接受的一組 HTTP 方法、要求的來源,以及有效的內容類型。這些原則可能因要求 URL 而異,並且可視需要透過將項目新增至 locked.properties 檔案來重新設定。

內容名稱後面的省略符號表示內容可以接受清單。

表 1. CORS 內容
內容 值類型 主要預設值 其他預設值
enableCORS true

false

false n/a
acceptContentType... http-content-type application/x-www-form-urlencoded,application/xml,text/xml

flexadmin=application/x-amf

admin=application/json,application/text,application/x-www-form-urlencoded

portal=application/json

view-vlsi-rest=application/json

rest=application/json

acceptHeader... http-header-name *

admin=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Cache-Control,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrftoken,DNT,Host,Origin,Referer,User-Agent

broker=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Gateway-Location,Gateway-Name,Gateway-Type,Host,Origin,Referer,User-Agent,X-CSRF-Token,X-EUC-Gateway,X-EUC-Health,X-Forwarded-For,X-Forwarded-Host,X-Forwarded-Proto

portal=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,Host,Origin,Referer,User-Agent,X-CSRF-Token

rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

view-vlsi=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

view-vlsi-rest=Accept,Accept-Encoding,Accept-Charset,Accept-Language,Authorization,Connection,Content-Language,Content-Length,Content-Type,Cookie,csrfToken,Host,Origin,Referer,User-Agent,X-Require-Cloud-Admin-Privilege

exposeHeader... http-header-name * n/a
filterHeaders true

false

true n/a
checkOrigin true

false

true n/a
checkReferer true

false

false n/a
allowCredentials true

false

false admin=true

broker=true

flexadmin=true

health=true

misc=true

portal=true

rest=true

saml=true

tunnel=true

view-vlsi=true

view-vlsi-rest=true

allowMethod... http-method-name GET,HEAD,POST

health=GET,HEAD

misc=GET,HEAD

rest=GET,POST,PUT, PATCH,DELETE

saml=GET,HEAD

tunnel=GET,POST

allowPreflight true

false

true n/a
maxAge cache-time 0 n/a
balancedHost load-balancer-name OFF n/a
portalHost... gateway-name OFF n/a
chromeExtension... chrome-extension-hash ppkfnjlimknmjoaemnpidmdlfchhehel
備註: 此值為 Chrome 版 Horizon Client的 Chrome 擴充功能識別碼。
n/a

以下為 locked.properties 檔案中的 CORS 內容範例。

enableCORS = true
allowPreflight = true
checkOrigin = true
checkOrigin-misc = false
allowMethod.1 = GET
allowMethod.2 = HEAD
allowMethod.3 = POST
allowMethod-saml.1 = GET
allowMethod-saml.2 = HEAD
acceptContentType.1 = application/x-www-form-urlencoded
acceptContentType.2 = application/xml
acceptContentType.3 = text/xml

來源檢查

來源檢查依預設為啟用。啟用時,將僅在要求不具有來源,或具有的來源等於外部 URL 指定的位址、等於 balancedHost位址、任何 portalHost 位址、任何 chromeExtension 雜湊、nulllocalhost 時才接受要求。如果來源不屬於上述任何一種情況,則系統會記錄「未預期的來源」錯誤並傳回狀態 404。

備註: 某些瀏覽器不會提供「來源」標頭,或不一定只提供一個。當「來源」標頭不存在時,可以選擇性地檢查要求中的「推薦者」標頭。「推薦者」標頭的標頭名稱中具有一個「r」。若要檢查「推薦者」標頭,請將下列內容新增至 locked.properties 檔案:
checkReferer=true

如果對多個連線伺服器主機或安全伺服器執行負載平衡,您必須將 balancedHost項目新增到 locked.properties 檔案,以指定負載平衡器位址。此位址會採用連接埠 443。

如果用戶端透過 Unified Access Gateway應用裝置或另一個閘道連線,您必須將 portalHost 項目新增至 locked.properties 檔案來指定所有閘道位址。這些位址會採用連接埠 443。您也必須指定 portalHost項目,利用與外部 URL 所指定名稱不同的名稱來提供對連線伺服器主機或安全伺服器的存取。

Chrome 擴充功能用戶端會將其初始來源設定為其本身的身分識別。若要讓連線成功,請透過將 chromeExtension項目新增至 locked.properties 檔案來登錄擴充功能。例如:

chromeExtension.1=bpifadopbphhpkkcfohecfadckmpjmjd