すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:request-block

最終更新日:Jan 08, 2025

request-block プラグインは、URL やリクエストヘッダーなどの特性に基づいて HTTP リクエストをブロックするために使用されます。 request-block プラグインを使用すると、一部の Web サイトリソースを外部への露出から保護できます。このトピックでは、request-block プラグインを設定する方法について説明します。

プラグインの種類

セキュリティ保護プラグイン。

フィールド

名前

データ型

必須

デフォルト値

説明

block_urls

文字列の配列

いいえ(block_urlsblock_headers、または block_bodys を設定する必要があります。)

-

ブロック対象のリクエストと照合するために使用される URL。

block_headers

文字列の配列

いいえ(block_urlsblock_headers、または block_bodys を設定する必要があります。)

-

ブロック対象のリクエストと照合するために使用されるヘッダー。

block_bodys

文字列の配列

いいえ(block_urlsblock_headers、または block_bodys を設定する必要があります。)

-

ブロック対象のリクエストと照合するために使用される本文。

blocked_code

数値

いいえ

403

リクエストがブロックされた場合に返される HTTP ステータスコード。

blocked_message

文字列

いいえ

-

リクエストがブロックされた場合に返される HTTP 応答本文。

case_sensitive

ブール値

いいえ

true

リクエストと照合するために使用される条件で大文字と小文字を区別するかどうかを指定します。デフォルトでは、条件では大文字と小文字が区別されます。

設定例

URL に基づいてリクエストをブロックする

block_urls:
- swagger.html
- foo=bar
case_sensitive: false

上記の構成に基づいて、次のリクエストがブロックされます。

curl http://example.com?foo=Bar
curl http://exmaple.com/Swagger.html

リクエストヘッダーに基づいてリクエストをブロックする

block_headers:
- example-key
- example-value

上記の構成に基づいて、次のリクエストがブロックされます。

curl http://example.com -H 'example-key: 123'
curl http://exmaple.com -H 'my-header: example-value'

リクエスト本文に基づいてリクエストをブロックする

block_bodys:
- "hello world"
case_sensitive: false

上記の構成に基づいて、次のリクエストがブロックされます。

curl http://example.com -d 'Hello World'
curl http://exmaple.com -d 'hello world'

特定のルートまたはドメイン名のリクエストをブロックする

次のプラグイン構成を route-a ルートと route-b ルートに適用します。

  block_bodys: 
  - "hello world"

次のプラグイン構成を *.example.com ドメイン名と test.com ドメイン名に適用します。

  block_urls: 
  - "swagger.html"
  block_bodys:
  - "hello world"
説明
  • route-a ルートと route-b ルートは、ゲートウェイルートの作成時に指定されたルートです。クライアントリクエストがルートのいずれかと一致する場合、一致したルートに設定されているルールが有効になります。

  • *.example.com ドメイン名と test.com ドメイン名は、リクエスト内のドメイン名と照合するために使用されます。クライアントリクエストがドメイン名のいずれかと一致する場合、一致したドメイン名に設定されているルールが有効になります。

  • 設定したルールは順番に有効になります。最初のルールが一致すると、後続のルールは無視されます。

リクエスト本文サイズの制限

block_bodys が設定されている場合、本文が 32 MB 未満のリクエストのみが、本文に基づく照合に使用されます。リクエストの本文が 32 MB を超え、リクエストが block_urls および block_headers で指定されたルールを満たしていない場合、リクエストはブロックされません。

block_bodys が設定されていて、リクエスト本文がゲートウェイに設定されている DownstreamConnectionBufferLimits の値を超えている場合、エラーメッセージ 413 Payload Too Large が返されます。パラメーター設定ページで DownstreamConnectionBufferLimits の値を増やすことができます。 DownstreamConnectionBufferLimits の値を増やすと、ゲートウェイのメモリ使用量が大幅に増加します。この操作を実行する際は注意してください。