发布于: Jan 13, 2023

Amazon CloudFront 现在支持“Cloudfront-viewer-header-order”和“Cloudfront-viewer-header-count”标头,以便客户能够跟踪随每次请求一同发送的 HTTP 标头的总数以及标头的发送顺序。客户可以使用这两个标头来检测和识别请求模式,并将它们与预期的合法模式进行比较。当与其他访问控制规则结合使用时,则有助于客户检测和阻止任何假冒请求的尝试。

“Cloudfront-viewer-header-order”标头包含多个请求标头,这些标头按指定顺序排列,并以冒号分隔。例如“Cloudfront-viewer-header-order: Host:User-Agent:Accept:Accept-Encoding”。“Cloudfront-viewer-header-count”标头存储了请求标头的总数。例如“Cloudfront-viewer-header-count: 4”。客户此前一直在使用 AWS WAF 访问控制规则 (ACL),并构建自己的访问控制措施,以便使用 CloudFront 标头(例如“Cloudfront-viewer-ja3-fingerprint”和“CloudFront-viewer-tls”标头)检测请求的指纹。今天发布新标头后,客户便可验证请求元数据的其他维度,从而进一步增强其访问控制措施。例如,使用相同 HTTP 协议版本的浏览器通常按特定顺序发送 HTTP 标头。如果 user-agent 标头指示的浏览器类型与请求标头的顺序不对应,则请求可能不是来自声明的来源。此外,如果标头计数标头的值与标头顺序标头中的标头数量不匹配,则客户可以进一步调查以验证请求是否来自假冒来源。客户可以将这两个标头添加到自己的源请求策略中。然后,可以使用这些标头在其原始服务器上构造自定义逻辑,也可以使用 CloudFront Functions 和 Lambda@Edge 在边缘构造自定义逻辑。

“Cloudfront-viewer-header-order”和“Cloudfront-viewer-header-count”标头可立即在所有 CloudFront 边缘站点使用。您可以在 CloudFront 控制台中或使用 AWS SDK 启用这两个标头,且使用标头无需支付额外费用。要了解更多信息,请参阅 CloudFront 开发人员指南