bot-detectプラグインは、webクローラーを識別し、webクローラーがwebサイトをクロールするのを防ぐために使用されます。 このトピックでは、bot-detectプラグインを設定する方法について説明します。
プラグイン型
セキュリティ保護プラグイン。
フィールド
項目 | データ型 | 必須 / 任意 | デフォルト値 | 説明 |
許可する | 文字列の配列 | 非対象 | - | User-Agentリクエストヘッダーの照合に使用される正規表現。 User-Agentリクエストヘッダーが一致する場合、リクエストは許可されます。 |
否定 | 文字列の配列 | 非対象 | - | User-Agentリクエストヘッダーの照合に使用される正規表現。 User-Agentリクエストヘッダーが一致すると、リクエストはブロックされます。 |
blocked_code | 数値 | 非対象 | 403 | リクエストがブロックされた場合に返されるHTTPステータスコード。 |
blocked_message | String | 非対象 | - | リクエストがブロックされた場合に返されるHTTPレスポンスボディ。 |
allowフィールドとdenyフィールドが設定されていない場合、クローラーを識別するデフォルトのロジックが実行されます。 allowフィールドを設定して、デフォルトのクローラー識別ロジックにヒットしたリクエストを許可できます。 denyフィールドを設定して、クローラー識別ロジックを追加できます。
例
デフォルトのクローラー識別ロジックにヒットしたリクエストを許可する
allow:
- ".*Go-http-client.*"許可フィールドを設定しない場合、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は、ゲートウェイルートの作成時に指定されたルートです。 クライアント要求がルートの1つと一致する場合、一致したルートの組み込みのデフォルトルールを使用してwebクローラーを識別します。* .example.comとtest.comドメイン名は、リクエストのドメイン名と一致するために使用されます。 クライアント要求がいずれかのドメイン名と一致する場合、一致したドメイン名に設定されているルールが有効になります。設定したルールは順番に有効になります。 最初のルールが一致する場合、後続のルールは無視されます。