跨域资源共享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)。