CJW

CJW 个人博客

分享网络知识和知识记录
github
email

CloudFlareの変換ルールを使用してBackblaze B2のバケットパスを隠す

早期の一篇の記事《Backblaze B2、低価格のオブジェクトストレージ、CloudFlare CDN への接続をサポート》では、Backblaze B2 を CloudFlare CDN に接続するためのチュートリアルが紹介されましたが、1 つの欠点があります。B2 のドメイン名がバケット名を露出させてしまい、あなたの CloudFlare 加速ドメインが誰でも Backblaze B2 を加速したり、直接ソースにアクセスして不正利用される可能性があるため、非常に不親切であり、安全ではありません。

例を挙げると:

B2 が提供するドメイン形式は:https://f002.backblazeb2.com/file/bucket/xxx.txt
CloudFlare で加速後のドメインはhttps://b2.domain.com/file/bucket/xxx.txt
もし私が B2 でバケット名を 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/ を除去できることがわかります。

不要なレスポンスヘッダーの削除
Backblaze B2 はリクエストのレスポンスヘッダーに以下のヘッダーを追加します:

x-bz-content-sha1
x-bz-file-id
x-bz-file-name
x-bz-upload-timestamp
影響は大きくありませんが、これらのパラメータを見ると B2 を使用していることがわかり、これらのパラメータは一般的に役に立たないため、CloudFlare の書き換えルールを使って削除することができます。

変換ルールのところで - 変換ルールの作成 - レスポンスヘッダーの変更。

ホスト名は上記と同じです:

そこではすべて “Remove” を選択し、最後に上記のヘッダーを記入すれば大丈夫です。

まとめ
CloudFlare と Backblaze B2 間の転送トラフィックは無料であり、CloudFlare の変換ルールを使用することでバケット名を隠し、URL をより親しみやすくし、同時に Backblaze B2 の不正利用のリスクをある程度防ぐことができます。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。