Cross-Origin Resource Sharing (CORS)
概述
CORS (Cross-Origin Resource Sharing) Policy 控制服务器上的资源如何可以从不同的来源访问。这对于依赖于托管在不同域上的 API 的 Web 应用程序至关重要。CORS 策略通过定义允许的方法、头部、凭据和缓存行为来确保安全的跨源请求。
配置详情
CORS Policy 包含几个控制访问和安全性的关键设置:
Field | Description | Example Values | Notes |
---|---|---|---|
methods | 定义允许的 HTTP 方法。 | GET, HEAD, PUT, PATCH, POST, DELETE, OPTIONS, TRACE, CONNECT | 使用 * 允许所有方法。 |
origins | 指定允许的来源(域)。 | https://www.example.com:8000, https://www.google.com:80 | 使用 * 允许所有来源。 |
allowHeaders | 列出允许的请求头。 | x-apim-key, Content-Type | 使用 * 允许所有头。 |
exposedHeaders | 定义应暴露给客户端的头。 | Content-Length, X-My-Custom-Header, X-Another-Custom-Header | 使用 * 暴露所有头。 |
allowCredential | 确定是否允许凭据(cookies,身份验证)。 | true / false | 如果为 true,则不能在 origins 或 allowHeaders 中使用 *。默认值:false。 |
maxAge | 预检请求缓存的持续时间(以秒为单位)。 | 3600 | 默认值:3600(1 小时)。 |
注意:
- 除非必要,否则避免在 origins 中使用,以防止安全风险。
- 如果不需要身份验证凭据,请将 allowCredential 设置为 false。
- 仅在 exposedHeaders 中暴露必要的头。
- 增加 maxAge 以减少不必要的预检请求。
- 将允许的方法和头限制为仅所需的内容。