bot-detect プラグインは、Webクローラーを識別し、Webクローラーによる Webサイトのクロールを防止するために使用されます。このトピックでは、bot-detect プラグインを設定する方法について説明します。
プラグインの種類
セキュリティ保護プラグイン。
フィールド
名前 | データ型 | 必須 | デフォルト値 | 説明 |
allow | 文字列の配列 | いいえ | - | User-Agent リクエストヘッダーの照合に使用される正規表現。User-Agent リクエストヘッダーが一致する場合、リクエストは許可されます。 |
deny | 文字列の配列 | いいえ | - | User-Agent リクエストヘッダーの照合に使用される正規表現。User-Agent リクエストヘッダーが一致する場合、リクエストはブロックされます。 |
blocked_code | 数値 | いいえ | 403 | リクエストがブロックされた場合に返される HTTP ステータスコード。 |
blocked_message | 文字列 | いいえ | - | リクエストがブロックされた場合に返される HTTP レスポンス本文。 |
allow
フィールドと deny
フィールドが設定されていない場合は、クローラーを識別するためのデフォルトロジックが実行されます。allow
フィールドを設定して、デフォルトのクローラー識別ロジックに一致するリクエストを許可できます。deny
フィールドを設定して、追加のクローラー識別ロジックを追加できます。
設定例
デフォルトのクローラー識別ロジックに一致するリクエストを許可する
allow:
- ".*Go-http-client.*"
allow フィールドを設定しない場合、Golang Webライブラリリクエストはクローラーと見なされ、リクエストはブロックされます。
クローラー識別ロジックを追加する
deny:
- "spd-tools.*"
上記の設定に基づいて、次のリクエストはブロックされます。
curl http://example.com -H 'User-Agent: spd-tools/1.1'
curl http://exmaple.com -H 'User-Agent: spd-tools'
特定のルートまたはドメイン名に対してセキュリティ保護ルールを有効にする
route-a
ルートと route-b
ルートを空の設定データで保存します。
次のプラグイン設定を *.example.com
ドメイン名と test.com
ドメイン名に適用します。
allow:
- ".*Go-http-client.*"
route-a
ルートとroute-b
ルートは、ゲートウェイルートの作成時に指定されたルートです。クライアントリクエストがルートのいずれかと一致する場合、一致したルートの組み込みのデフォルトルールを使用して Webクローラーが識別されます。*.example.com
ドメイン名とtest.com
ドメイン名は、リクエスト内のドメイン名と照合するために使用されます。クライアントリクエストがドメイン名のいずれかと一致する場合、一致したドメイン名に設定されているルールが有効になります。設定したルールは順番に有効になります。最初のルールが一致すると、後続のルールは無視されます。