ua-restriction插件
更新时间 2026-04-21 15:48:56
最近更新时间: 2026-04-21 15:48:56
本文将详细介绍ua-restriction插件功能、配置和使用。
功能说明
ua-restriction 插件通过将指定 User-Agent 列入白名单或黑名单的方式来限制对服务或路由的访问。一种常见的场景是用来设置爬虫规则,User-Agent 是客户端在向服务器发送请求时的身份标识,可以将一些爬虫程序的请求头列入 ua-restriction 插件的白名单或黑名单中。
配置字段
| 名称 | 类型 | 填写要求 | 默认值 | 有效值 | 描述 |
|---|---|---|---|---|---|
| allowlist | array[string] | 可选 | 加入白名单的 User-Agent。 | ||
| denylist | array[string] | 可选 | 加入黑名单的 User-Agent。 | ||
| message | string | 可选 | "Not allowed" | 字符数[1,1024] | 当未允许的 User-Agent 访问时返回的信息。 |
| bypass_missing | boolean | 可选 | false | 当设置为 true 时,如果 User-Agent 请求头不存在或格式有误时,将绕过检查。 |
注意
allowlist 和 denylist 可以同时启用。同时启用时,插件会根据 User-Agent 先检查 allowlist,再检查 denylist。
如果黑白名单列表中采用*作为通配符,则需要通过引号添加字段值
配置示例
设置 User-Agent 白名单
allowlist:
- ".*Go-http-client.*"若不做该配置,默认的Golang网络库请求被禁止访问。
设置 User-Agent 黑名单
denylist:
- "tools.*"根据该配置,以下请求会被禁止。
curl http://example.com -H 'User-Agent: tools/1.1'
curl http://exmaple.com -H 'User-Agent: tools'该请求的响应结果为
HTTP/1.1 403 Forbidden
......
{"message":"Not allowed"}同时设置白名单与黑名单
allowlist:
- "tools.*"
- ".*Go-http-client.*"
denylist:
- "tools.*"由于白名单的优先级更高,所以在请求带有'User-Agent: tools' 的路由时会请求通过。
配置模板
#[可选]加入白名单的User-Agent列表,支持正则表达式。和黑名单同时配置时,白名单优先级更高
allowlist:
- my-bot1
#[可选]加入黑名单的User-Agent列表,支持正则表达式
denylist:
- my-bot2
#[可选]未允许的User-Agent访问时返回的信息。有效长度1-1024,默认为Not allowed
#message: “Not allowed”
#[可选]当设置为 true 时,如果 User-Agent 请求头不存在或格式有误时,将绕过检查。默认false
#bypass_missing: false