bot-detect プラグインは、ウェブクローラーを識別し、ウェブサイトへのアクセスをブロックします。
プラグインタイプ
セキュリティ保護。
フィールド
|
フィールド |
データ型 |
必須 |
デフォルト値 |
説明 |
|
allow |
文字列の配列 |
いいえ |
- |
User-Agent ヘッダーに一致する正規表現です。一致したリクエストは許可されます。 |
|
deny |
文字列の配列 |
いいえ |
- |
User-Agent ヘッダーに一致する正規表現です。一致したリクエストはブロックされます。 |
|
blocked_code |
数値 |
いいえ |
403 |
リクエストがブロックされたときに返される HTTP ステータスコードです。 |
|
blocked_message |
文字列 |
いいえ |
- |
リクエストがブロックされたときに返される HTTP レスポンスボディです。 |
allow フィールドも deny フィールドも設定されていない場合、デフォルトのクローラー識別ロジックが使用されます。allow を使用してデフォルトのクローラールールに一致するリクエストを除外し、deny を使用してカスタムのクローラー識別ルールを追加します。
例
デフォルトのクローラー識別ロジックにヒットするリクエストの許可
allow:
- ".*Go-http-client.*"
この設定がない場合、Golang HTTP ライブラリからのリクエストはウェブクローラーとして識別され、ブロックされます。
クローラー識別ロジックの追加
deny:
- "spd-tools.*"
このルールによって、以下のリクエストがブロックされます:
curl http://example.com -H 'User-Agent: spd-tools/1.1'
curl http://example.com -H 'User-Agent: spd-tools'
特定のルートまたはドメイン名に対するセキュリティ保護ルールの有効化
route-a ルートと route-b ルートを、空の設定で保存します。
以下のプラグイン設定を *.example.com ドメイン名と test.com ドメイン名に適用します:
allow:
- ".*Go-http-client.*"
-
route-aとroute-bは、ゲートウェイルートを作成するときに指定されるルートです。クライアントリクエストがこれらのルートのいずれかに一致する場合、組み込みのデフォルトルールを使用してウェブクローラーを識別します。 -
*.example.comとtest.comは、リクエスト内のドメイン名に一致します。クライアントリクエストがこれらのドメイン名のいずれかに一致する場合、対応するルールが有効になります。 -
ルールは順番に適用されます。あるルールに一致すると、後続のルールはスキップされます。