リファラルスパムをブロック
次の例は、の設定方法を示しています Fastly エッジディクショナリ カスタム VCL スニペットを使用して、クラウドインフラストラクチャサイト上のAdobe Commerceからの紹介スパムをブロックします。
前提条件:
-
Fastly CDN を使用するように環境を設定する必要があります。 参照: Fastly サービスの設定.
-
Magento 2 の Fastly CDN モジュールが最新バージョンであることを確認してください。 参照: Fastly モジュールのアップグレード.
-
Fastly サービスの環境設定を確認します。 参照: Fastly キャッシュを確認する.
-
ステージング環境と実稼動環境にアクセスするには、管理者資格情報が必要です。
-
サイトのログで偽のリファラル URL を確認し、ブロックするドメインのリストを作成します。
リファラーブロックリストの作成
Edge Dictionaries は、VCL スニペットの処理中に、VCL 関数からアクセス可能なキーと値のペアを作成します。 この例では、ブロックするリファラー web サイトのリストを提供するエッジ辞書を作成します。
-
ログイン を管理者に送信します。
-
クリック ストア > 設定 > 設定 > 詳細 > システム.
-
を展開 フルページキャッシュ > Fastly 設定 > エッジ辞書.
-
辞書コンテナの作成:
-
クリック コンテナを追加.
-
日 コンテナ ページ、a を入力 辞書名—
referrer_blocklist
. -
を選択 変更後にアクティベート 編集中の Fastly サービス設定のバージョンに変更をデプロイする場合。
-
クリック Upload をクリックして、Fastly サービス設定に辞書を添付します。
-
-
ブロックするドメイン名のリストをに追加
referrer_blocklist
辞書:-
の「設定」アイコンをクリックします
referrer_blocklist
辞書。 -
キーと値のペアを新しい辞書に追加して保存します。 この例では、 キー は、ブロックするリファラー URL のドメイン名です。 値 等しい
true
. -
クリック キャンセル 「システム設定」ページに戻ります。
-
-
クリック 設定を保存.
-
ページ上部の通知に従ってキャッシュを更新します。
Edge 辞書について詳しくは、 Edge 辞書の作成と使用 および カスタム VCL スニペット を Fastly のドキュメントで確認できます。
リファラースパムをブロックするカスタム VCL スニペットの作成
次のカスタム VCL スニペットコード(JSON 形式)は、リクエストをチェックしてブロックするロジックを示しています。 VCL スニペットは、リファラー web サイトのホストをヘッダーに取り込み、ホスト名をの中の URL のリストと比較します。 referrer_blocklist
辞書。 ホスト名が一致する場合、リクエストは次のコードでブロックされます。 403 Forbidden
エラー。
{
"name": "block_bad_referrer",
"dynamic": "0",
"type": "recv",
"priority": "5",
"content": "set req.http.Referer-Host = regsub(req.http.Referer, \"^https?:\/\/?([^:\/s]+).*$\", \"\\1\"); if (table.lookup(referrer_blocklist, req.http.Referer-Host)) { error 403 \"Forbidden\"; }"
}
この例に基づいてスニペットを作成する前に、値を確認して、変更が必要かどうかを判断してください。
-
name
— VCL スニペットの名前。 この例では、を使用しますblock_bad_referrer
. -
dynamic
– 値 0 はを示します。 標準スニペット を Fastly 設定用のバージョン付き VCL にアップロードします。 -
priority
- VCL スニペットを実行するタイミングを指定します。 優先度は次のとおりです5
デフォルトのMagentoVCL スニペットの前にこのコードを実行するには、次の手順に従います(magentomodule_*
)に優先度 50 を割り当てました。 各カスタムスニペットの優先度を、スニペットを実行するタイミングに応じて 50 より高くまたは低く設定します。 優先度の低いスニペットが最初に実行されます。 -
type
- VCL バージョンにスニペットを挿入する場所を指定します。 この例では、VCL スニペットはrecv
スニペット。 スニペットが VCL バージョンに挿入されると、に追加されます。vcl_recv
デフォルトの Fastly VCL コードの下および任意のオブジェクトの上のサブルーチン。 -
content
– 改行なしで 1 行で実行する VCL コードのスニペット。
環境のコードを確認して更新した後、次のいずれかの方法を使用して、カスタム VCL スニペットを Fastly サービス設定に追加します。
-
カスタム VCL スニペットを管理者から追加します。. 管理者にアクセスできる場合は、この方法をお勧めします。 (必須 Fastly バージョン 1.2.58 (またはそれ以降)。
-
JSON コードの例をファイルに保存します(例:
allowlist.json
)および fastly API を使用してアップロードします. 管理者にアクセスできない場合は、この方法を使用します。
カスタム VCL スニペットの追加
-
ログイン を管理者に送信します。
-
クリック ストア > 設定 > 設定 > 詳細 > システム.
-
を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.
-
クリック カスタムスニペットの作成.
-
VCL スニペットの値を追加します。
-
名前 —
block_bad_referrer
-
タイプ —
recv
-
優先度 —
5
-
VCL スニペットコンテンツ —
code language-conf set req.http.Referer-Host = regsub(req.http.Referer, "^https?://?([^:/\s]+).*$", "1"); if (table.lookup(referrer_blocklist, req.http.Referer-Host)) { error 403 "Forbidden"; }
-
-
クリック 作成.
-
ページの再読み込み後、 Fastly への VCL のアップロード が含まれる Fastly 設定 セクション。
-
アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。
Fastly は、アップロード処理中に更新された VCL バージョンを検証します。 検証に失敗した場合は、カスタム VCL スニペットを編集して問題を修正します。 次に、VCL を再度アップロードします。
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom
環境内のディレクトリ。 クリックすると、このディレクトリ内のスニペットが自動的にアップロードされます vcl の Fastly へのアップロード Commerce Admin. 参照: カスタム VCL スニペットの導入を自動化 Magento 2 用 Fastly CDN モジュールのドキュメントを参照してください。カスタム VCL スニペットの変更
-
ログイン を管理者に送信します。
-
クリック ストア > 設定 > 設定 > 詳細 > システム.
-
を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.
-
が含まれる アクション 列で、編集するスニペットの横にある「設定」アイコンをクリックします。
-
ページの再読み込み後、 Fastly への VCL のアップロード が含まれる Fastly 設定 セクション。
-
アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。
カスタム VCL スニペットの削除
-
ログイン を管理者に送信します。
-
クリック ストア > 設定 > 設定 > 詳細 > システム.
-
を展開 フルページキャッシュ > Fastly 設定 > カスタム VCL スニペット.
-
が含まれる アクション 列で、削除するスニペットの横にあるごみ箱アイコンをクリックします。
-
次のモーダルウィンドウで、 DELETE 新しいバージョンをアクティブ化します。