リファラースパムをブロックするカスタム 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 を使用してアップロードします。 管理者にアクセスできない場合は、この方法を使用します。