机器人检测
保护服务或路由免受大多数常见机器人的攻击,并具有将自定义客户端列入白名单和列入黑名单的能力。
术语
plugin: 在请求被代理到上游API之前或之后,在Kong内部执行操作的插件。Service: 表示外部 upstream API或微服务的Kong实体。Route: 表示将下游请求映射到上游服务的方法的Kong实体。upstream service: 这是指位于Kong后面的您自己的 API/service,转发客户端请求。
配置
此插件与具有以下协议的请求兼容:
httphttps
此插件与无DB模式兼容。
在 Service 上启用插件
使用数据库:
通过发出以下请求在Service上配置此插件:
$ curl -X POST http://kong:8001/services/{service}/plugins \--data "name=bot-detection"
不使用数据库:
通过添加此部分在服务上配置此插件执行声明性配置文件:
plugins:- name: bot-detectionservice: {service}config:
在这两种情况下,{service}是此插件配置将定位的Service的id或name。
在 Route 上启用插件
使用数据库:
在Route上配置此插件:
$ curl -X POST http://kong:8001/routes/{route}/plugins \--data "name=bot-detection"
不使用数据库:
通过添加此部分在路由上配置此插件执行声明性配置文件:
plugins:- name: bot-detectionroute: {route}config:
在这两种情况下,{route}是此插件配置将定位的Route的id或name。
全局插件
- 使用数据库: 可以使用
http://kong:8001/plugins/配置所有插件。 - 不使用数据库: 可以通过
plugins: 配置所有插件:声明性配置文件中的条目。
与任何 Service ,Route 或 Consumer (或API,如果您使用旧版本的Kong)无关的插件被视为“全局”,并将在每个请求上运行。有关更多信息,请阅读插件参考和插件优先级部分。
参数
以下是可在此插件配置中使用的所有参数的列表:
| 参数 | 默认值 | 描述 |
|---|---|---|
name |
要使用的插件的名称,在本例中为bot-detection |
|
service_id |
此插件将定位的 Service 的ID。 | |
route_id |
此插件将定位的 Route 的ID。 | |
enabled |
true |
是否将应用此插件。 |
config.whitelist optional |
应列入白名单的正则表达式数组。将根据User-Agentheader检查正则表达式。。 |
|
config.blacklist optional |
应列入黑名单的正则表达式数组。将根据User-Agentheader检查正则表达式。 |
默认规则
该插件已包含一个基本的规则列表,将在每个请求中进行检查。您可以在GitHub上找到此列表,dizhi为https://github.com/Kong/kong/blob/master/kong/plugins/bot-detection/rules.lua。
