如何阻止 CloudFront 或其他 CDN 访问我的网站

如何阻止 CloudFront 或其他 CDN 访问我的网站

有些人创建了一个 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。

答案3

我相信你可以使用 javascript 代码来检查location。此检查将在访问者浏览器中完成(因此不是服务器端!)。此方法与防止在iframe

如果检测到这种情况,那么您可以将用户重定向到有效的 URL(或者不显示任何内容)。

相关内容