リクエストブロックプラグインは、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.comとtest.comドメイン名は、リクエストのドメイン名と一致するために使用されます。 クライアント要求がいずれかのドメイン名と一致する場合、一致したドメイン名に設定されているルールが有効になります。設定したルールは順番に有効になります。 最初のルールが一致する場合、後続のルールは無視されます。
リクエストボディサイズの制限
block_bodysが設定されている場合、ボディが32 MB未満のリクエストのみがボディに基づくマッチングに使用されます。 リクエストの本文が32 MBを超え、リクエストがblock_urlsおよびblock_headersで指定されたルールを満たしていない場合、リクエストはブロックされません。
block_bodysが設定され、リクエスト本文がゲートウェイに設定されているDownstreamConnectionBufferLimitsの値を超えると、413 Payload Too Largeというエラーメッセージが返されます。 パラメータ設定ページで、DownstreamConnectionBufferLimitsの値を増やすことができます。 DownstreamConnectionBufferLimitsの値を増やすと、ゲートウェイのメモリ使用量が大幅に増加します。 この操作は慎重に行ってください。