了解响应标头策略 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

了解响应标头策略

借助响应标头策略,您可以指定 Amazon CloudFront 添加到它发送给查看器(Web 浏览器或客户端)的响应中的 HTTP 标头。有关响应标头策略以及为何使用响应标头策略的更多信息,请参阅将 HTTP 标头添加到 CloudFront 响应

以下主题解释了响应标头策略中的设置。这些设置分为下面的主题所代表的类别。

策略详细信息(元数据)

策略详细信息设置包含有关响应标头策略的元数据。

  • Name(名称)– 用于标识响应标头策略的名称。在控制台中,南滨可以使用名称将策略附加到某个缓存行为。

  • Description(描述)(可选)– 用于描述响应标头策略的注释。虽然此选项是可选的,但它可以帮助您确定策略的用途。

CORS 标头

跨源资源共享(CORS)设置允许您在响应标头策略中添加和配置 CORS 标头。

此列表关注的是如何在响应标头策略中指定设置和有效值。有关各个标头以及如何在真实的 CORS 请求和响应使用的更多信息,请参阅 MDN Web Docs 中的跨源资源共享CORS 协议规范

  • Access-Control-Allow-Credentials – 这是一个布尔值设置(truefalse),它决定了 CloudFront 是否在 CORS 请求的响应中添加 Access-Control-Allow-Credentials 标头。如果此设置为 true,CloudFront 将会在 CORS 请求的响应中添加 Access-Control-Allow-Credentials: true 标头。否则,CloudFront 不会在响应中添加此标头。

  • Access-Control-Allow-Headers – 指定 CloudFront 在 CORS 预检请求的响应中用作 Access-Control-Allow-Headers 标头的值的标头名称。此设置的有效值包括 HTTP 标头名称或通配符(*)。

  • Access-Control-Allow-Methods – 指定 CloudFront 在 CORS 预检请求的响应中用作 Access-Control-Allow-Methods 标头的值的 HTTP 方法。有效值包括 GETDELETEHEADOPTIONSPATCHPOSTPUTALL(全部)。ALL(全部)是一个包含所有列出的 HTTP 方法的特殊值。

  • Access-Control-Allow-Origin – 指定 CloudFront 可以在 Access-Control-Allow-Origin 响应标头中使用的值。此设置的有效值包括域名(例如 example.com)或者通配符(*),后者意味着所有域(允许所有源)。

  • Access-Control-Expose-Headers – 指定 CloudFront 在 CORS 请求的响应中用作 Access-Control-Expose-Headers 标头的值的标头名称。此设置的有效值包括 HTTP 标头名称或通配符(*)。

  • Access-Control-Max-Age – CloudFront 在 CORS 预检请求的响应中用作 Access-Control-Max-Age 标头的值的秒数。

  • Origin override(源覆盖)– 这是一个布尔值设置(truefalse),它决定了当来自源的响应中包含策略中也包含的某个 CORS 标头时 CloudFront 的行为方式。

    如果此设置为 true 并且源响应中包含策略中也包含的 CORS 标头,CloudFront 会将策略中的 CORS 标头添加到它发送给查看器的响应中,但忽略从源收到的标头。

    如果此设置为 false 并且源响应中包含策略中也包含的 CORS 标头,CloudFront 会将它从源收到的 CORS 标头包含在它发送给查看器的响应中。

    当源响应不包含策略中的 CORS 标头时,CloudFront 会将策略中的 CORS 标头添加到它发送给查看器的响应中,无论此设置为 true 还是 false

安全标头

借助安全标头设置,您可以在响应标头策略中添加和配置多个与安全相关的 HTTP 响应标头。

此列表关注的是如何在响应标头策略中指定设置和有效值。有关各个标头以及如何在真实的 HTTP 响应中使用它们的更多信息,请参阅 MDN Web Docs 链接。

  • Content-Security-Policy – 指定 CloudFront 用作 Content-Security-Policy 响应标头的值的内容安全策略指引。

    有关此标头和有效策略指引的更多信息,请参阅 MDN Web Docs 中的 Content-Security-Policy

    注意

    Content-Security-Policy 标头值的长度限制为 1783 个字符。

  • Referrer-Policy – 指定 CloudFront 用作 Referrer-Policy 响应标头的值的引用站点策略指引。此设置的有效值为 no-referrerno-referrer-when-downgradeoriginorigin-when-cross-originsame-originstrict-originstrict-origin-when-cross-originunsafe-url

    有关此标头和这些指引的更多信息,请参阅 MDN Web Docs 中的 Referrer-Policy

  • Strict-Transport-Security – 指定 CloudFront 用作 Strict-Transport-Security 响应标头的值的指引和设置。对于此设置,您可以单独指定:

    • CloudFront 用作此标头的 max-age 指引的值的秒数

    • preload 的布尔值设置(truefalse),它决定了 CloudFront 是否在此标头的值中包括 preload 指引

    • includeSubDomains 的布尔值设置(truefalse),它决定了 CloudFront 是否在此标头的值中包括 includeSubDomains 指引

    有关此标头和这些指令的更多信息,请参阅 MDN Web Docs 中的 Strict-Transport-Security

  • X-Content-Type-Options – 这是一个布尔值设置(truefalse),它决定了 CloudFront 是否在响应中添加 X-Content-Type-Options 标头。如果此设置为 true,CloudFront 会在响应中添加 X-Content-Type-Options: nosniff 标头。否则,CloudFront 不会添加此标头。

    有关此标头的更多信息,请参阅 MDN Web Docs 中的 X-Content-Type-Options

  • X-Frame-Options – 指定 CloudFront 用作 X-Frame-Options 响应标头的值的指引。此设置的有效值为 DENYSAMEORIGIN

    有关此标头和这些指引的更多信息,请参阅 MDN Web Docs 中的 X-Frame-Options

  • X-XSS-Protection – 指定 CloudFront 用作 X-XSS-Protection 响应标头的值的指引和设置。对于此设置,您可以单独指定:

    • X-XSS-Protection 设置 为 0(禁用 XSS 筛选)或 1(启用 XSS 筛选)

    • block 的布尔值设置(truefalse),它决定了 CloudFront 是否在此标头的值中包括 mode=block 指引

    • 报告 URI,它决定了 CloudFront 是否在此标头的值中包括 report=reporting URI 指引

    您可以将 block 指定为 true,也可以指定一个报告 URI,但是不能同时指定这两个参数。有关此标头和这些指引的更多信息,请参阅 MDN Web Docs 中的 X-XSS-Protection

  • Origin override(源覆盖)– 这些安全标头均包含一个布尔值设置(truefalse),它决定了当来自源的响应中包含该标头时 CloudFront 的行为方式。

    如果此设置为 true 并且源响应中包含此标头,CloudFront 会将策略中的标头添加到它发送给查看器的响应中,但忽略从源收到的标头。

    如果此设置为 false 并且源响应中包含此标头,CloudFront 会将它从源收到的标头包含在它发送给查看器的响应中。

    当源响应不包含此标头时,CloudFront 会将策略中的标头添加到它发送给查看器的响应中,无论此设置为 true 还是 false

自定义标头

借助自定义标头设置,您可以在响应标头策略中添加和配置自定义的 HTTP 标头。CloudFront 会将这些标头添加到它返回给查看器的每个响应中。对于每个自定义标头,您还可以指定标头的值,但值是可选的(CloudFront 可以添加无值的响应标头)。

每个自定义标头也有自己的 Origin override(源覆盖)设置:

  • 如果此设置为 true 并且源响应中包含策略中包含的自定义标头,CloudFront 会将策略中的自定义标头添加到它发送给查看器的响应中,但忽略从源收到的标头。

  • 如果此设置为 false 并且源响应中包含策略中也包含的自定义标头,CloudFront 会将它从源收到的自定义标头包含在它发送给查看器的响应中。

  • 当源响应不包含策略中的自定义标头时,CloudFront 会将策略中的自定义标头添加到它发送给查看器的响应中,无论此设置为 true 还是 false