全部產品
Search
文件中心

API Gateway:request-block外掛程式

更新時間:Jan 08, 2025

request-block外掛程式實現了基於URL、要求標頭等特徵屏蔽HTTP請求,可以用於防護部分網站資源不對外部暴露。本文介紹如何配置request-block外掛程式。

外掛程式類型

安全防護。

配置欄位

名稱

資料類型

填寫要求

預設值

描述

block_urls

array of string

選填。block_urls,block_headers,block_bodys中至少必填一項。

-

配置用於匹配需要屏蔽URL的字串。

block_headers

array of string

選填。block_urls,block_headers,block_bodys中至少必填一項。

-

配置用於匹配需要屏蔽請求Header的字串。

block_bodys

array of string

選填。block_urls,block_headers,block_bodys中至少必填一項。

-

配置用於匹配需要屏蔽請求Body的字串。

blocked_code

number

選填。

403

配置請求被屏蔽時返回的HTTP狀態代碼。

blocked_message

string

選填。

-

配置請求被屏蔽時返回的HTTP應答Body。

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

屏蔽請求Header

block_headers:
- example-key
- example-value

根據該配置,下列請求將被禁止訪問。

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

屏蔽請求Body

block_bodys:
- "hello world"
case_sensitive: false

根據該配置,下列請求將被禁止訪問。

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

對特定路由或網域名稱開啟

route-aroute-b兩個路由做如下外掛程式配置:

  block_bodys: 
  - "hello world"

*.example.comtest.com兩個網域名稱做如下外掛程式配置:

  block_urls: 
  - "swagger.html"
  block_bodys:
  - "hello world"
說明
  • route-aroute-b即在建立網關路由時填寫的路由名稱,當匹配到這兩個路由時,將使用此段配置。

  • *.example.comtest.com用於匹配請求的網域名稱,當發現網域名稱匹配時,將使用此配置。

  • 配置的匹配生效順序,將按照規則的排列順序,匹配第一個規則後生效對應配置,後續規則將被忽略。

請求Body大小限制

當配置了block_bodys時,僅支援小於32MB的請求Body進行匹配。若請求Body大於此限制,並且不存在匹配到的block_urlsblock_headers項時,不會對該請求執行屏蔽操作。

當配置了block_bodys時,若請求Body超過全域配置DownstreamConnectionBufferLimits,將返回413 Payload Too Large, 請在參數配置頁調高此項。注意調高此參數配置後,網關記憶體使用量將有顯著增加。