当前位置: 首页 > 教程 > 心得 > 通过CloudFlare转换规则隐藏Backblaze B2的bucket路径

通过CloudFlare转换规则隐藏Backblaze B2的bucket路径

发布于:2022-6-10 心得 8条评论 18,832 views
本站提供Linux服务器运维,自动化脚本编写等服务,如有需要请联系博主微信:xiaozme

在早期的一篇文章《Backblaze B2,低价的对象存储,支持接入CloudFlare CDN》介绍了Backblaze B2接入CloudFlare CDN的教程,但存在一个缺陷,B2的域名会将bucket名称暴露出来,会导致你的CloudFlare加速域名任何人都可以用来加速Backblaze B2或者直接访问源站进行盗刷,不仅不友好,还不安全。

举个例子:

  • B2提供的域名格式为:https://f002.backblazeb2.com/file/bucket/xxx.txt
  • 使用CloudFlare加速后域名为https://b2.domain.com/file/bucket/xxx.txt

假如我在B2创建了一个bucket名称为xiaoz,那么我就可以访问你的CloudFlare域名https://b2.domain.com/file/xiaoz/xxx.txt,从而导致占用你的CloudFlare流量。

或者我直接访问你的源站:https://f002.backblazeb2.com/file/xiaoz/xxx.txt进行流量盗刷。

这篇文章的目的就是去掉B2极其不友好的URL路径,隐藏file/bucket/这一串内容。

前提准备

如果您的B2域名还未接入CloudFlare,请参考这篇文章:https://blog.xiaoz.org/archives/13256进行接入。

创建转换规则

CloudFlare后台 - 规则 - 转换规则 - 创建转换规则 - 重写URL

继续填写:

  • 规则名称:随便写
  • 字段:选择“主机名”
  • 运算符:选择“等于”
  • 值:填写您在CloudFlare上对B2的加速域名(你自己的域名)

然后路径选择“重写到 - 选择Dynamic”,并填写:

concat("/file/bucket", http.request.uri.path)

其中bucket改成你自己的存储桶名称,然后选择部署就行了。

优化后

优化前我们的访问路径为:https://b2.domain.com/file/bucket/xxx.txt

优化后的路径为:https://b2.domain.com/xxx.txt

可以看出去除了file/bucket/

去除不必要的响应Header

Backblaze B2会在请求的响应头中添加以下几个header参数:

  • x-bz-content-sha1
  • x-bz-file-id
  • x-bz-file-name
  • x-bz-upload-timestamp

虽然影响不大,但是一看这些参数就知道你用的B2,并且这些参数头一般拿来也没啥用,我们也可以通过CloudFlare的重写规则将其去掉。

依然在转换规则那里 - 创建转换规则 - 修改响应头。

主机名那些和上面的一样:

然后那里全部选“Remove”,最后填写上面那几个header头部即可。

总结

CloudFlare与Backblaze B2之间的传输流量是免费的,通过CloudFlare转换规则可以隐藏bucket名称,让URL更加友好,同时一定程度上防止了Backblaze B2被盗刷的风险。

此文部分内容参考了:【对象存储】搭配CF带宽联盟实现流量免费


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注


已有8条评论