bot-detect插件

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。

说明

allowdeny字段可以均不配置,则执行默认的爬虫判断逻辑,通过配置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'

对特定路由或域名开启

route-aroute-b两个路由做空配置保存。

*.example.comtest.com两个域名做如下插件配置:

  allow:
  - ".*Go-http-client.*"
说明
  • route-aroute-b即在创建网关路由时填写的路由名称,因为没有做额外配置,当匹配到这两个路由时,将使用内置的默认规则来识别爬虫。

  • *.example.comtest.com用于匹配请求的域名,当发现域名匹配时,将使用此段配置。

  • 配置的匹配生效顺序,将按照规则的排列顺序,匹配第一个规则后生效对应配置,后续规则将被忽略。