リファラースパムをブロックするカスタム 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 サービス設定に追加します。