CDN回源OSS报错时,如何隐藏OSS报错信息中的Bucket域名?

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

通过阿里云CDN或其他CDN回源OSS报错时,OSS会返回报错信息。OSS的报错信息中包含了敏感信息Bucket域名。如果Bucket域名被暴露,会增加您的OSS Bucket被攻击的风险。

问题原因

默认配置下,CDN在回源请求OSS内容时,请求Header中的Host值是OSS Bucket域名。OSS在收到错误的请求并返回错误信息时,会返回请求Header中的Host信息。

默认的阿里云CDN回源Host配置示例如下。

2.png

问题示例

例如,如果访问一个不存在的文件,OSS会触发404错误。在返回的错误信息中,会包含Bucket域名。无论是4xx、5xx等其他类型的错误,OSS都会在返回的错误信息中包含Bucket域名。

404错误的错误信息示例如下。

1.png

解决方案

警告

如果您还未将CDN加速域名与OSS Bucket完成绑定,就修改回源Host,OSS将无法正确处理这个未知Host的请求,从而导致回源失败并无法获取所需内容。因此,在修改回源Host之前,请确保已经成功将CDN加速域名与OSS Bucket完成绑定,并测试成功CDN可以正确地回源到OSS获取内容。具体操作,请参见绑定CDN加速域名

CDN的回源Host配置为加速域名,OSS的报错信息将显示加速域名而不是Bucket域名,从而隐藏Bucket域名。

具体操作,请参见配置默认回源HOST

修改后的阿里云CDN回源Host配置示例如下。

3.pngOSS报错信息示例如下。

4.png

相关文档

配置回源Host的方法也适用于其他需要隐藏Bucket域名的场景,例如Nginx反向代理。详情请参见使用ECS实例反向代理OSS