功能说明

request-block插件实现了基于 URL、请求头等特征屏蔽 HTTP 请求,可以用于防护部分站点资源不对外部暴露

运行属性

插件执行阶段:鉴权阶段 插件执行优先级:320

配置字段

名称数据类型填写要求默认值描述
block_urlsarray of string选填,block_urls,block_headers,block_bodies 中至少必填一项-配置用于匹配需要屏蔽 URL 的字符串
block_headersarray of string选填,block_urls,block_headers,block_bodies 中至少必填一项-配置用于匹配需要屏蔽请求 Header 的字符串
block_bodiesarray of string选填,block_urls,block_headers,block_bodies 中至少必填一项-配置用于匹配需要屏蔽请求 Body 的字符串
blocked_codenumber选填403配置请求被屏蔽时返回的 HTTP 状态码
blocked_messagestring选填-配置请求被屏蔽时返回的 HTTP 应答 Body
case_sensitivebool选填true配置匹配时是否区分大小写,默认区分

配置示例

屏蔽请求 url 路径

  1. block_urls:
  2. - swagger.html
  3. - foo=bar
  4. case_sensitive: false

根据该配置,下列请求将被禁止访问:

屏蔽请求 header

  1. block_headers:
  2. - example-key
  3. - example-value

根据该配置,下列请求将被禁止访问:

  1. curl http://example.com -H ‘example-key: 123’
  2. curl http://exmaple.com -H ‘my-header: example-value’

屏蔽请求 body

  1. block_bodies:
  2. - hello world
  3. case_sensitive: false

根据该配置,下列请求将被禁止访问:

  1. curl http://example.com -d ‘Hello World’
  2. curl http://exmaple.com -d ‘hello world’

请求 Body 大小限制

当配置了 block_bodies 时,仅支持小于 32 MB 的请求 Body 进行匹配。若请求 Body 大于此限制,并且不存在匹配到的 block_urlsblock_headers 项时,不会对该请求执行屏蔽操作 当配置了 block_bodies 时,若请求 Body 超过全局配置 DownstreamConnectionBufferLimits,将返回 413 Payload Too Large