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

API Gateway:リクエストブロック

最終更新日:Jan 09, 2025

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

プラグイン型

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

フィールド

項目

データ型

必須 / 任意

デフォルト値

説明

ブロック_urls

文字列の配列

いいえblock_urls、block_headers、またはblock_bodysを設定する必要があります。

-

ブロックされるリクエストを一致させるために使用されるURL。

block_headers

文字列の配列

いいえblock_urls、block_headers、またはblock_bodysを設定する必要があります。

-

ブロックされるリクエストを一致させるために使用されるヘッダー。

block_bodys

文字列の配列

いいえblock_urls、block_headers、またはblock_bodysを設定する必要があります。

-

ブロックされるリクエストを一致させるために使用されるボディ。

blocked_code

数値

非対象

403

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

blocked_message

String

非対象

-

リクエストがブロックされた場合に返されるHTTPレスポンスボディ。

case_sensitive

bool

非対象

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.comtest.comドメイン名は、リクエストのドメイン名と一致するために使用されます。 クライアント要求がいずれかのドメイン名と一致する場合、一致したドメイン名に設定されているルールが有効になります。

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

リクエストボディサイズの制限

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

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