跨域資源共享CORS(Cross-Origin Resource Sharing)是一項重要的安全策略,允許Web應用服務器進行跨域訪問控制,從而實現跨域數據安全傳輸。云原生網關支持在路由級別配置跨域策略,您可以根據自身需求,只允許必要的域名和請求方法訪問資源,從而防止跨站點請求偽造等安全風險,確保服務的可靠性和安全性。
配置跨域策略
登錄MSE網關管理控制臺,并在頂部菜單欄選擇地域。
在左側導航欄,選擇云原生網關 > 網關列表,單擊目標網關名稱。
在左側導航欄,單擊路由管理,然后選擇路由頁簽。
單擊需要變更的路由操作下的策略配置。
在策略配置頁簽,單擊跨域。
說明跨域對于Mock服務不生效,請配置一個真實的后端測試服務。
在跨域策略列表中設置相關配置項,然后單擊下方的保存。
配置項
描述
允許的訪問來源
設置允許通過瀏覽器訪問服務器資源的站點。參數輸入規則如下:
允許所有的訪問來源:
*
。允許指定根域名的訪問來源:
*.example.com
。允許多個具體的訪問來源:以
http://
或https://
開頭,并且以回車分隔。
說明該參數作用于
Access-Control-Allow-Origin
頭部。當客戶端請求的Origin頭部匹配上任意您設置的允許的訪問來源,跨域響應的Access-Control-Allow-Origin
將會被設置為客戶端請求的Origin頭部。允許的方法
選擇跨域訪問時允許的HTTP方法。常見的方法有GET、POST、PUT、DELETE、HEAD、OPTIONS和PATCH。
說明該參數作用于Access-Control-Allow-Methods頭部。
允許的請求頭部
除了瀏覽器內置的基礎Header,設置跨域訪問時允許的Header。參數輸入規則如下:
允許所有的請求頭部:
*
。允許多個具體的請求頭部:輸入具體的請求頭部,并以回車分隔。
說明該參數作用于Access-Control-Allow-Headers頭部。
允許的響應頭部
允許瀏覽器、JavaScript腳本訪問的響應頭部。參數輸入規則如下:
允許所有的響應頭部:
*
。允許多個具體的響應頭部:輸入具體的響應頭部,并以回車分隔。
說明該參數作用于Access-Control-Expose-Headers頭部。
允許攜帶憑證
跨域訪問時是否允許攜帶憑證信息。
說明該參數作用于Access-Control-Allow-Credentials頭部。
預檢的過期時間
對于非簡單請求,設置OPTIONS預檢請求在瀏覽器的最大緩存時間。
說明該參數作用于Access-Control-Max-Age頭部。
開啟
打開開啟右側的開關。
開啟:開啟跨域策略后,您的服務器資源允許被設置的第三方源站通過瀏覽器進行跨域訪問。
關閉:關閉跨域策略后,您的服務器資源禁止被任意第三方源站通過瀏覽器進行跨域訪問。
結果驗證
執行以下測試請求命令:
curl -I -H "Origin: http://example.com" -H 'Host: www.test.com' -X OPTIONS http://121.196.XX.XX/demo/item/list
響應結果:
HTTP/1.1 200 OK allow: GET,HEAD,OPTIONS x-content-type-options: nosniff x-xss-protection: 1; mode=block cache-control: no-cache, no-store, max-age=0, must-revalidate pragma: no-cache expires: 0 x-frame-options: DENY content-length: 0 date: Tue, 30 Nov 2021 03:20:31 GMT x-envoy-upstream-service-time: 6 access-control-allow-origin: http://example.com access-control-allow-credentials: true access-control-expose-headers: * server: istio-envoy
相關文檔
關于跨域的更多信息,請參見跨域資源共享(CORS)。