bot-detect插件可以用于识别并阻止互联网爬虫对站点资源的爬取。本文介绍如何配置bot-detect插件。
插件类型
安全防护。
配置字段
名称 | 数据类型 | 填写要求 | 默认值 | 描述 |
allow | array of string | 选填。 | - | 配置匹配User-Agent请求头的正则表达式,匹配命中时将允许其访问。 |
deny | array of string | 选填。 | - | 配置匹配User-Agent请求头的正则表达式,匹配命中时将屏蔽请求。 |
blocked_code | number | 选填。 | 403 | 配置请求被屏蔽时返回的HTTP状态码。 |
blocked_message | string | 选填。 | - | 配置请求被屏蔽时返回的HTTP应答Body。 |
说明
allow
和deny
字段可以均不配置,则执行默认的爬虫判断逻辑,通过配置allow
字段可以将原本命中默认爬虫判断逻辑的请求放行,通过配置deny
字段可以增加额外的爬虫判断逻辑。
配置示例
放行原本命中爬虫规则的请求
allow:
- ".*Go-http-client.*"
若不做该配置,默认的Golang网络库请求会被视作爬虫,被禁止访问。
增加爬虫判断
deny:
- "spd-tools.*"
根据该配置,下列请求将被禁止访问。
curl http://example.com -H 'User-Agent: spd-tools/1.1'
curl http://exmaple.com -H 'User-Agent: spd-tools'
对特定路由或域名开启
# 使用 _rules_ 字段进行细粒度规则配置
_rules_:
# 规则一:按路由名称匹配生效
- _match_route_:
- route-a
- route-b
# 规则二:按域名匹配生效
- _match_domain_:
- "*.example.com"
- test.com
allow:
- ".*Go-http-client.*"
说明
_match_route_
中指定的route-a
和route-b
即在创建网关路由时填写的路由名称,当匹配到这两个路由时,将使用此段配置。_match_domain_
中指定的*.example.com
和test.com
用于匹配请求的域名,当发现域名匹配时,将使用此段配置。配置的匹配生效顺序,将按照
_rules_
下规则的排列顺序,匹配第一个规则后生效对应配置,后续规则将被忽略。
反馈
- 本页导读 (1)
文档反馈