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

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

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

在早期的一篇文章《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://www.xiaoz.me/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带宽联盟实现流量免费


2 条评论 “通过CloudFlare转换规则隐藏Backblaze B2的bucket路径”

  1. 鸟叔说道:

    小博客真没感觉有人来刷流量的

    1. xiaoz说道:

      小心驶得万年船,哈哈。

发表评论

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