阿里云OSS如何屏蔽Worker反代
需求情形:使用Cloudflare代理OSS,但想要避免被Worker反代。所以需要筛选Cloudflare的正常抓取请求与Worker请求。Cloudflare官方解决方法是Worker请求必定带有请求头CF-Worker,可惜阿里云不支持通过请求头筛选。Cloudflare正常请求与Worker请求在IP段上没有区别,所以也不能使用Bucket Policy的IP筛选。
解决方案:除了Bucket Policy的IP筛选,阿里云OSS还只剩下一个筛选器了,那就是防盗链(referer筛选)。于是我们可以在Cloudflare中设置Transform Rule,将请求头中的referer强制设定为一个很长的随机字符串。然后在阿里云OSS中开启防盗链,只允许该referer,且禁止空referer即可。
这个方案目前实践没有发现问题。如果有问题本专栏会更新。