以下の内容はhttps://mattintosh-note.jp/entry/20241126/1732547989より取得しました。


はてなブログの一部条件下でCloudflareのWAFを使う

セキュリティの都合上詳しくは書けないのですが別館の Cloudflare WAF で使っているルールをこちらのはてなブログでも使えるようにしました。

ルートとしてはこんな感じで Workers を呼び出しています。

Workers に到達するまでにどこかでブロックされると閲覧できないようにします。一応これで IP だけでなく国や ASN といった制限も使えるようになっている…はず。

Workers デフォルトのエンドポイントはそのままだとめちゃくちゃ攻撃されるので無効にしてルートを追加しておきます。

外部からの呼び出しは制限がかかるのでコードの方で Access-Control-Allow-Origin を使って許可しておきます。

/**
 * Welcome to Cloudflare Workers! This is your first worker.
 *
 * - Run "npm run dev" in your terminal to start a development server
 * - Open a browser tab at http://localhost:8787/ to see your worker in action
 * - Run "npm run deploy" to publish your worker
 *
 * Learn more at https://developers.cloudflare.com/workers/
 */

export default {
  async fetch(request, env, ctx) {
    return new Response(null, {
      headers: {
        'Access-Control-Allow-Origin': 'https://mattintosh-note.jp',
        'Access-Control-Allow-Methods': 'GET',
      }
    });
  },
};

free プランだと一日あたり 100,000 リクエストまでみたいですがそこまで PV が多いわけではないので特に問題ないでしょう(ちなみに超えた場合は全部アクセス制限扱いになります)。

最初ははてなブログだけでなんとかしようと思ったのですがアクセス制限のルールをこっちと別館バラバラで管理するの面倒くさい…となりこんな構成に。

とりあえずこれで 2、3 日様子を見ます。




以上の内容はhttps://mattintosh-note.jp/entry/20241126/1732547989より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14