Help

スパム対策エンジンの例外の設定


English version: Configuring exceptions for the anti-spam engine


通常、フォームを送信したり、プログラムでPOSTリクエストを送信したりしてウェブサイトと通信するテクノロジーを使用している場合は、スパム対策の例外を設定する必要があります。このような場合、WP Cerberは正当なリクエストをボットによって生成されたものと認識し、ブロックすることがあります。これにより誤検知が発生し、「アクティビティ」タブに表示されます。このようなログエントリは、 「スパムフォーム送信拒否」としてマークされます。

特定のリクエストを検査から除外する方法

すべてのスパム対策例外は、スパム対策設定ページで設定できます。URLベースの例外と、HTTPヘッダーをチェックして考慮する例外の2種類の例外を設定できます。

URLベースの例外を設定するには、 「これらの場所をスパムスキャンから除外する」設定フィールドを使用します。複数の例外を、それぞれ別の行に指定できます。

仕組みは以下のとおりです。特定のリクエストを除外するには、そのリクエストのパス(および必要に応じてクエリ文字列)をフィールドに追加するだけです。アンチスパムエンジンは、URL内のどこに出現するかに関係なく、パスに指定された文字列のいずれかが含まれるリクエストを無視します。これにより、重要なリクエストがスパムフィルターにブロックされることなく確実に通過できるようになります。

例外をさらに細かく制御する必要がある場合は、正規表現(REGEX)を使用して、より正確なURLベースのマッチングパターンを定義できます。これは、パスやクエリ文字列の特定のバリエーションに基づいてリクエストを除外する必要がある場合に役立ちます。正規表現の使用と効果的な例外の作成に関する詳細なヒントについては、以下の追加情報をご覧ください。

WordPress: Configuring Anti-spam Exceptions

Configuring WordPress anti-spam exceptions in WP Cerber

シンプルなスパム対策例外の例

スパム対策例外の設定を始める際に役立つように、 「スパムのスキャンからこれらの場所を除外する」フィールドに追加できる一般的な URL パスの種類について説明します。

1. GETパラメータやスクリプトのないシンプルなパス

WordPressで特定のパスを除外したい場合は、単純な文字列として追加できます。アンチスパムエンジンは、URLのどこにあっても、これらのパスのいずれかを部分文字列として含むリクエストのスキャンをスキップします。

例:

  • "/about"
  • "/contact/"
  • "/add/new/product"

これらのエントリにより、URI 内の場所に関係なく、これらのパスを含むすべての URL がスパム スキャンから除外されます。

2. GETパラメータのないPHPスクリプト名

特定のPHPスクリプトを除外したい場合は、スクリプトとそのパスを指定するだけです。これは、アンチスパムエンジンで検査すべきではない特定のスクリプトがある場合に特に便利です。エンジンは、URL内で指定されたファイル名を検索することで、これらのスクリプトを照合します。

例:

  • "/index.php"
  • "/engine/products.php"
  • "search.php"

このタイプの例外は柔軟性があり、ルート ディレクトリ内のスクリプトとサブディレクトリ内にネストされたスクリプトの両方をカバーします。

3. GETパラメータ付きパス

特定のパスと特定のクエリパラメータの両方を例外の対象とする必要がある場合は、フィールドにGETパラメータを含むパスを追加できます。アンチスパムエンジンは、リクエストURIにパラメータを含む完全な文字列が見つかった場合にのみ例外を適用します。これは、パスとクエリの詳細の両方に基づいて正確なマッチングを行うのに最適です。

例:

  • "/store/products.php?id=10"
  • "/wp/?query="
  • "/wp-admin/process.php?item=5&action=add"

このタイプの設定により、正確なパラメータを持つリクエストが除外されるため、より対象を絞った例外に役立ちます。

これらの例を使用すると、さまざまな種類の例外を設定して、WordPress の他の領域全体で徹底したスパム保護を維持しながら、重要なリクエストを WP Cerber スパム フィルタリングから保護することができます。

正規表現を使用した高度なスパム対策例外

スパム対策例外をより柔軟かつ強力に制御するには、正規表現(REGEX)を使用して、特定の種類のリクエストに一致するパターンを定義できます。REGEXベースの例外を使用すると、パスやクエリパラメータに類似した構造や動的要素を持つリクエストを正確に除外できる、高度な柔軟性が得られます。

「これらの場所をスパムスキャンから除外する」フィールドに正規表現パターンを指定すると、WP Cerberのアンチスパムエンジンはそれを柔軟な一致条件として扱います。リクエストURIがパターンに一致する場合、スパムスキャンから除外されます。リクエストの完全なURIは、Traffic Inspectorのログページで確認できます。

REGEX ベースの例外を指定するには、パターンを {} で囲みます。

正規表現ベースのスパム対策例外の例

各パターンを{}で囲むことを忘れないでください。そうすることで、WP Cerber はそれを正規表現として認識します。注: パターン内でリテラルのドット ( . ) またはリテラルの疑問符 ( ? ) を指定するには、バックスラッシュ ( \ ) でエスケープする必要があります ( \.および\?

1. 特定の開始点を持つパスを除外する

特定のパスから始まるすべてのリクエストを除外したい場合は、REGEX を使用すると、指定したセグメントで始まる任意の URI を一致させることができます。

  • 例: {^/processor/.*$}
  • このパターンは、 /admin/で始まるリクエストを、その後に続く内容に関係なく除外します。これは、同じパスに複数の動的ページやアクションを含むディレクトリに最適です。

2. 数値IDを持つパスを除外する

動的な数値 ID を含むパスをターゲットにするには、REGEX を使用して、特定の場所にある一連の数字を一致させます。

  • 例: {^/handler/[0-9]+$}
  • このパターンは、IDが変化するものの数値のままである/handler/123/handler/456のようなパスに一致します。これは、一意の数値識別子に依存するURLに役立ちます。

3. 部分的なクエリパラメータに基づいて除外する

また、REGEX を使用してクエリ文字列内の特定のパターンを一致させることもでき、正確な値を必要とせずに特定のパラメータを含むリクエストを除外できるようになります。

  • 例: {^/submit\.php\?query=.*$}
  • このパターンは、実際の値に関係なく、 queryパラメータが存在するsubmit.phpへのすべてのリクエストに一致します。

4. オプションパラメータによる柔軟なURLパス

REGEX を使用すると、パスまたはクエリ文字列内のオプションのセグメントを考慮できるため、除外する対象をより柔軟に定義できます。

  • 例: {^/products/?(.*)$}
  • このパターンは、 /productsへのリクエストに一致します。追加のサブパス/products/details/products/123など)の有無は問いません。WordPress のセクション全体にわたる広範な例外処理に最適です。

REGEX パターンを使用すると、複雑なリクエストや可変のリクエストに合わせてスパム対策例外を定義し、スパム スキャンをバイパスする URL を正確に制御できます。

リクエストURIを識別する方法

Live Traffic管理ページに移動します。ホワイトリストに追加する必要がある正当なリクエストを見つけ、 「リクエスト」列からリクエスト URI を取得します。下のスクリーンショットのように、リクエスト URI に動的な GET パラメータが含まれている場合は、正規表現の使用が必要になる場合があります。

Request URIs on the Live Traffic page in the WordPress dashboard

Request URI on the Live Traffic page in the WordPress dashboard

選択したページでスパム対策を無効にする方法

外部ソースから読み込まれ、サードパーティのウェブサイトで処理されるサードパーティフォームとの競合を避けるため、ウェブサイト内の特定のページでWP Cerberのアンチスパムコードを無効化することで、例外を設定できます。ページのリストは、PHP定数CERBER_DISABLE_SPAM_FILTERで指定します。この定数はwp-config.phpファイルで定義する必要があります。ページ(投稿)IDをカンマ区切りの文字列で指定します。リストが設定されている場合、WP Cerberのアンチスパム設定管理ページにページのリストが表示されます。リスト定義の例を以下に示します。

 define('CERBER_DISABLE_SPAM_FILTER', '3, 45');

ウェブサイトに HubSpot フォームがある場合は、この機能を使用する必要があるかもしれません。

参照: WordPressでスパムユーザー登録を阻止する方法


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.