有些人创建了一个 CloudFront CDN 来代理我的网站,这样人们就可以使用类似这样的 URL 来访问我的网站,df03039lsls933.cloudfront.net
而不是www.example.com
如何使用 nginx 来阻止这种情况?
来自 CloudFront 文档,它说..
Host: CloudFront sets the value to the domain name of the origin that is
associated with the requested object.
所以我无法通过使用host
标题来阻止,另一种方法是什么?
(CloudFront 只是一个例子,我想用类似的方法阻止所有 CDN)
答案1
CloudFront 请求来自记录的 IP 范围以及包含的 User-Agent 字符串Amazon CloudFront
。您可以阻止其中任何一种,但由于 AWS 的 IP 范围相当频繁地扩大,我建议使用 User-Agent 阻止。
答案2
我希望 CDN 能够添加可用于识别它们的标头。这些标头通常会指示用户的真实 IP 地址以及其他一些信息。它们还应添加或附加一个,X-Forwarded-For header,
其中还应包含它们要转发的 IP 地址。
您可以使用标头的存在来触发到您域的重定向。我不会使用此X-Forwarded-For
标头进行此重定向,因为网络边界上的代理以及 CDN 可能会添加此标头。您可能需要根据具体情况识别 CDN 的标头。
如果有人在未经您许可的情况下配置了您的域名,您还应该联系 CDN。