如何使用特定的引用策略和 CloudFront 分配改进 S3 存储桶的反抓取

Posted

技术标签:

【中文标题】如何使用特定的引用策略和 CloudFront 分配改进 S3 存储桶的反抓取【英文标题】:How to improve anti scraping for S3 bucket with specific referer policy and CloudFront distribution 【发布时间】:2021-07-19 14:57:26 【问题描述】:

目前的情况是我有一个 CloudFront 分配,其中一个 OAI 指向我的应用程序中提供的图像存储桶。我已经设法使存储桶策略只允许来自云端分发的 getObject 操作,并且只能从我的应用程序的域中使用 Referer 标头进行访问。

问题在于,如果有人设法从脚本中伪造了该引用者,他们可以访问图像并制作抓取机器人并获取我的所有数据。有什么方法可以阻止访问,甚至只能从我自己的应用程序访问?

App 的业务是新闻机构和摄影师之间的照片新闻市场,因此我的目标是为这些限制提供一种廉价且可扩展的机制,因为我一次管理大量照片,因此对每张照片的预先指定的请求都是负载密集型的并且使用防火墙可能非常昂贵。

【问题讨论】:

【参考方案1】:

如果您不想使用签名网址的方法,您可以尝试其他方法 -

您可以添加自定义标头以及引用者等传统标头。这将处理 99% 的抓取,而可能很少有抓取工具会复制此标头,对于他们来说,您可以简单地开始阻止它们.

【讨论】:

我想知道是否可以向存储桶添加一个策略,以仅允许对来自我的应用程序的 lambda 的资源进行操作(以某种方式通过 lambda 的 arn 前缀限制访问)。我现在不确定该怎么做。我会尝试一些事情并回来提供有关此问题的更新。

以上是关于如何使用特定的引用策略和 CloudFront 分配改进 S3 存储桶的反抓取的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 + CloudFront 查询特定版本的存储文件

具有地理位置策略的 AWS Cloudfront 与 Route53

Cloudfront 限制存储桶策略中的 IP

CloudFront 已被 CORS 策略阻止

Amazon S3 存储桶策略只允许访问特定的 http

通过 IP 限制对 CloudFront 的访问