基于header封禁
更新时间:2026-08-28
config 字段结构
config 为一个数组,每个元素是一条封禁规则对象:
YAML
1- header: x-custom-header
2 values:
3 - value1
4 - value2
字段说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
header |
string | 是 | 需要检查的 HTTP 请求头名称,不区分大小写 |
values |
[]string | 是 | 该 header 下被封禁的值列表,精确匹配 |
header
- 类型:
string - 填写需要拦截的 HTTP 请求头名称
- 不区分大小写,内部会统一转为小写进行比较
- 前后空白会被自动去除
- 如果为空字符串,该规则会被忽略
values
- 类型:
[]string(字符串数组) - 填写需要封禁的 header 值列表
- 精确匹配,不支持正则表达式或通配符
- 每个值的前后空白会被自动去除
- 空字符串值会被过滤掉
- 如果数组为空或所有值均为空字符串,该规则会被忽略
配置示例
单条规则
YAML
1- header: x-debug
2 values:
3 - "true"
4 - "1"
封禁所有携带 x-debug: true 或 x-debug: 1 的请求。
多条规则
YAML
1- header: x-debug-mode
2 values:
3 - "true"
4 - "1"
5 - "on"
6- header: x-bypass-auth
7 values:
8 - "yes"
9 - "true"
10- header: x-internal-token
11 values:
12 - "leaked-token-123"
同时封禁多个 header,任意一条规则命中即拦截请求。
空配置(不封禁)
YAML
1[]
不配置任何规则时,所有请求正常放行。
匹配规则
- 请求到达时,获取所有请求头并将名称转为小写
- 逐条遍历配置的封禁规则
- 检查请求中是否包含对应 header,且值是否在封禁列表中
- 首次命中即拦截:只要有一条规则匹配成功,立即返回 403,不再检查后续规则
- 所有规则均未命中则放行请求
评价此篇文章
