ブロック紹介スパム
次の例は、Fastly Edge Dictionaryをカスタム VCL スニペットで設定して、Adobe Commerce on cloud infrastructure サイトからのリファラルスパムをブロックする方法を示しています。
前提条件:
-
Fastly CDN を使用するように環境を設定する必要があります。 詳しくは、Fastly サービスの設定 を参照してください。
-
Magento 2 の Fastly CDN モジュールが最新バージョンであることを確認してください。 Fastly モジュールのアップグレード を参照してください。
-
Fastly サービスの環境設定を確認します。 Fastly キャッシュの確認 を参照してください。
-
ステージング環境と実稼動環境にアクセスするには、管理者資格情報が必要です。
-
偽の紹介URLがないかサイトログを確認し、ブロックするドメインのリストを作成します。
リファラーブロックリストの作成
Edge ディクショナリは、VCL スニペット処理中にVCL関数にアクセス可能なキーと値のペアを作成します。 この例では、ブロックするリファラーweb サイトのリストを提供するエッジディクショナリを作成します。
-
管理者に ログインします。
-
Stores > Settings > Configuration > Advanced > Systemをクリックします。
-
フルページキャッシュ > Fastly Configuration > Edge ディクショナリを展開します。
-
辞書コンテナを作成します。
-
「コンテナを追加」をクリックします。
-
コンテナ ページで、辞書の名前—
referrer_blocklistを入力します。 -
変更の後に アクティブ化 を選択して、編集中のFastly サービス設定のバージョンに変更をデプロイします。
-
「アップロード」をクリックして、辞書をFastly サービス設定に添付します。
-
-
ブロックするドメイン名のリストを
referrer_blocklist辞書に追加します。-
referrer_blocklist辞書の設定アイコンをクリックします。 -
新しい辞書にキーと値のペアを追加して保存します。 この例では、各 キー はブロックするリファラーURLのドメイン名で、値は
trueです。
-
「キャンセル」をクリックして、システム設定ページに戻ります。
-
-
「設定を保存」をクリックします。
-
ページ上部の通知に従ってキャッシュを更新します。
Edge ディクショナリについて詳しくは、Fastly ドキュメントのEdge ディクショナリの作成と使用および カスタム VCL スニペット を参照してください。
リファラースパムをブロックするためのカスタム VCL スニペットの作成
次のカスタム VCL スニペットコード(JSON形式)は、リクエストをチェックおよびブロックするロジックを示しています。 VCL スニペットは、リファラーサイトのホストをヘッダーにキャプチャし、ホスト名を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 スニペットが実行されるタイミングを決定します。 このスニペットコードを実行する優先度は5です。このスニペットコードを実行すると、デフォルトのMagento VCL スニペット (magentomodule_*)のいずれかが優先度50に割り当てられます。 スニペットを実行するタイミングに応じて、各カスタムスニペットの優先度を50より高くまたは低く設定します。 優先度の低いスニペットが最初に実行されます。 -
type- VCL バージョンでスニペットを挿入する場所を指定します。 この例では、VCL スニペットはrecvスニペットです。 スニペットがVCL バージョンに挿入されると、デフォルトのFastly VCL コードの下、および任意のオブジェクトの上のvcl_recvサブルーチンに追加されます。 -
content– 改行なしで1行で実行するVCL コードのスニペット。
環境のコードを確認して更新したら、次のいずれかの方法を使用して、Fastly サービス設定にカスタム VCL スニペットを追加します。
-
管理者からカスタム VCL スニペットを追加します。 管理者にアクセスできる場合は、この方法をお勧めします。 (Fastly バージョン 1.2.58以降が必要です)
-
JSON コードの例をファイル (例:
allowlist.json)に保存し、Fastly API🔗を使用して アップロードします。 管理者にアクセスできない場合は、この方法を使用します。
カスタム VCL スニペットの追加
-
管理者に ログインします。
-
ストア / 設定/構成 / 詳細 / システムをクリックします。
-
フルページキャッシュ > Fastly設定 > カスタム VCL スニペットを展開します。
-
「カスタムスニペットを作成」をクリックします。
-
VCL スニペット値を追加します。
-
名前 —
block_bad_referrer -
種類 —
recv -
優先度 —
5 -
VCL スニペットコンテンツ —
code language-conf 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"; }
-
-
「作成」をクリックします。
-
ページが再読み込みされたら、「Fastly設定」セクションの「VCLをFastlyにアップロード」をクリックします。
-
アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。
アップロードプロセス中に、更新されたVCL バージョンをFastlyが検証します。 検証が失敗した場合は、カスタム VCL スニペットを編集して問題を修正します。 次に、VCLをもう一度アップロードします。
$MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom ディレクトリにスニペットを追加できます。 このディレクトリのスニペットは、Commerce管理者で_VCLをFastly_にアップロードをクリックすると、自動的にアップロードされます。 Magento 2用Fastly CDN モジュールの自動カスタム VCL スニペットのデプロイメント を参照してください。カスタム VCL スニペットの変更
-
管理者に ログイン します。
-
ストア/設定/設定/詳細/システム をクリックします。
-
フルページキャッシュ/Fastly 設定/カスタム VCL スニペット の順に展開します。
-
アクション 列で、編集するスニペットの横にある設定アイコンをクリックします。
-
ページのリロード後、「Fastly 設定 _セクションのFastly に VCL をアップロード_ をクリックします。
-
アップロードが完了したら、ページ上部の通知に従ってキャッシュを更新します。
カスタム VCL スニペットの削除
-
管理者に ログイン します。
-
ストア/設定/設定/詳細/システム をクリックします。
-
フルページキャッシュ/Fastly 設定/カスタム VCL スニペット の順に展開します。
-
アクション 列で、削除するスニペットの横にあるごみ箱アイコンをクリックします。
-
次のモーダルウィンドウで、「DELETE」をクリックし 新しいバージョンをアクティベートします。