ドキュメントCommerceクラウド上の Commerce に関するガイド

PaaS のみ

リファラルスパムをブロック

最終更新日: 2025年5月5日
  • トピック:
  • クラウド
  • 設定

作成対象:

  • 管理者
  • 開発者

次の例は、カスタム VCL スニペットを使用して Fastly Edge Dictionary を設定し、クラウドインフラストラクチャサイト上のAdobe Commerceからの紹介スパムをブロックする方法を示しています。

メモ
カスタム VCL 設定をステージング環境に追加して、実稼動環境に対して実行する前にテストできるようにすることをお勧めします。

前提条件:

  • Fastly CDN を使用するように環境を設定する必要があります。 詳しくは、Fastly サービスの設定を参照してください。

  • Magento 2 の Fastly CDN モジュールが最新バージョンであることを確認してください。 Fastly モジュールのアップグレードを参照してください。

  • Fastly サービスの環境設定を確認します。 Fastly キャッシュの確認を参照してください。

  • ステージング環境と実稼動環境にアクセスするには、管理者資格情報が必要です。

  • サイトのログで偽のリファラル URL を確認し、ブロックするドメインのリストを作成します。

リファラーブロックリストの作成

Edge ディクショナリは、VCL スニペットの処理中に、VCL 関数からアクセス可能なキーと値のペアを作成します。 この例では、ブロックするリファラー web サイトのリストを提供するエッジ辞書を作成します。

  1. 管理者に ログインします。

  2. ストア/設定/設定/詳細/システム をクリックします。

  3. フルページキャッシュ/Fastly 設定/Edgeの辞書 を展開します。

  4. 辞書コンテナの作成:

    • コンテナを追加 をクリックします。

    • コンテナ ページで 辞書名—referrer_blocklist を入力します。

    • 変更後にアクティベート を選択して、編集中の Fastly サービス設定のバージョンに変更をデプロイします。

    • アップロード をクリックして、Fastly サービス設定に辞書を添付します。

  5. ブロックするドメイン名のリストを referrer_blocklist の辞書に追加します。

    • referrer_blocklist 辞書の「設定」アイコンをクリックします。

    • キーと値のペアを新しい辞書に追加して保存します。 この例では、各 Key はブロックするリファラー URL のドメイン名で、Value は true です。

      不正なリファラー辞書項目を追加

    • 「キャンセル」をクリックして、システム設定ページに戻ります。

  6. 「設定を保存」をクリックします。

  7. ページ上部の通知に従ってキャッシュを更新します。

Edge辞書について詳しくは、Fastly ドキュメントの Edge辞書の作成と使用および カスタム VCL スニペットを参照してください。

リファラースパムをブロックするカスタム VCL スニペットの作成

次のカスタム VCL スニペットコード(JSON 形式)は、リクエストをチェックしてブロックするロジックを示しています。 VCL スニペットは、リファラー web サイトのホストをヘッダーに取り込み、ホスト名を referrer_blocklist ディクショナリ内の URL のリストと比較します。 ホスト名が一致する場合、リクエストは 403 Forbidden エラーでブロックされます。

{
  "name": "block_bad_referrer",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if (req.http.Referer ~ \"^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$\") {set req.http.Referer-Host = re.group.2;}if (table.lookup(referrer_blocklist, req.http.Referer-Host)) {error 403 \"Forbidden\";}"
}

この例に基づいてスニペットを作成する前に、値を確認して、変更が必要かどうかを判断してください。

  • name — VCL スニペットの名前。 この例では、block_bad_referrer を使用します。

  • dynamic – 値 0 は、Fastly 設定用にバージョン管理された VCL にアップロードする 通常のスニペットを示します。

  • priority — VCL スニペットを実行するタイミングを指定します。 優先度は、デフォルトのMagentoVCL スニペット(magentomodule_*)に優先度 50 が割り当てられる前に、このスニペットコードを実行する 5 要があります。 各カスタムスニペットの優先度を、スニペットを実行するタイミングに応じて 50 より高くまたは低く設定します。 優先度の低いスニペットが最初に実行されます。

  • 「type」 - VCL バージョンにスニペットを挿入する場所を指定します。 この例では、VCL スニペットが recv スニペットです。 スニペットを VCL バージョンに挿入すると、既定の Fastly VCL コードの下で、オブジェクトの上にある vcl_recv サブルーチンに追加されます。

  • content – 改行なしで 1 行で実行する VCL コードのスニペット。

環境のコードを確認して更新した後、次のいずれかの方法を使用して、カスタム VCL スニペットを Fastly サービス設定に追加します。

  • カスタム VCL スニペットを管理者から追加します。 管理者にアクセスできる場合は、この方法をお勧めします。 (Fastly バージョン 1.2.58 以降が必要です。)

  • JSON コードの例をファイル(例:allowlist.json)に保存して、Fastly API を使用してアップロードします。 管理者にアクセスできない場合は、この方法を使用します。

カスタム VCL スニペットの追加

  1. 管理者に ログインします。

  2. ストア/設定/設定/詳細/システム をクリックします。

  3. フルページキャッシュ/Fastly 設定/カスタム VCL スニペット の順に展開します。

  4. カスタムスニペットを作成 をクリックします。

  5. VCL スニペットの値を追加します。

    • 名前 — block_bad_referrer

    • 種類 — recv

    • 優先度 — 5

    • VCL スニペットコンテンツ —

      if (req.http.Referer ~ "^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$") {
        set req.http.Referer-Host = re.group.2;
      }
      if (table.lookup(referrer_blocklist, req.http.Referer-Host)) {
        error 403 "Forbidden";
      }
      
  6. 作成 をクリックします。

    カスタムリファラーブロック VCL スニペットの作成

  7. ページのリロード後、「Fastly 設定 セクションの ​Fastly に VCL をアップロード をクリックします。

  8. アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。

Fastly は、アップロード処理中に更新された VCL バージョンを検証します。 検証に失敗した場合は、カスタム VCL スニペットを編集して問題を修正します。 次に、VCL を再度アップロードします。

NOTE
カスタム VCL スニペットを手動でアップロードする代わりに、環境内の $MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom ディレクトリにスニペットを追加できます。 Commerce Admin で VCL を Fastly にアップロード をクリックすると、このディレクトリ内のスニペットが自動的にアップロードされます。 Magento 2 ドキュメントの Fastly CDN モジュールの 自動カスタム VCL スニペットのデプロイメントを参照してください。

カスタム VCL スニペットの変更

  1. 管理者に ログインします。

  2. ストア/設定/設定/詳細/システム をクリックします。

  3. フルページキャッシュ/Fastly 設定/カスタム VCL スニペット の順に展開します。

    カスタム VCL スニペットの管理

  4. アクション 列で、編集するスニペットの横にある設定アイコンをクリックします。

  5. ページのリロード後、「Fastly 設定 _セクションの ​Fastly に VCL をアップロード_ をクリックします。

  6. アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。

WARNING
「カスタム VCL スニペット UI オプションには、Adobe Commerce管理を通じて追加されたスニペットのみが表示されます。 Fastly API を使用してスニペットを追加する場合は、API を使用して スニペットを管理します。

カスタム VCL スニペットの削除

  1. 管理者に ログインします。

  2. ストア/設定/設定/詳細/システム をクリックします。

  3. フルページキャッシュ/Fastly 設定/カスタム VCL スニペット の順に展開します。

    カスタム VCL スニペットの管理

  4. アクション 列で、削除するスニペットの横にあるごみ箱アイコンをクリックします。

  5. 次のモーダルウィンドウで、「DELETE」をクリックし 新しいバージョンをアクティベートします。

WARNING
「カスタム VCL スニペット UI オプションには、Adobe Commerce管理を通じて追加されたスニペットのみが表示されます。 Fastly API を使用してスニペットを追加する場合は、API を使用して スニペットを管理します。
recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938