仅需几分钟,为腾讯云Edgeone增加自定义人机验证

腾讯云EdgeOne免费版默认是不支持人机验证的,这里借助腾讯云边缘函数,为EdgeOne防护做了一些拓展(当前支持无感验证和点击验证两种方式)


点击验证预览图

待验证👇

验证成功👇


如何使用?

打开EdgeOne人机验证生成工具,选择需要的验证方式,点击生成按钮即可生成代码。(一人一码,每次生成的代码和密钥是独一无二的)

部署到EdgeOne

复制生成的代码,进入EdgoOne边缘函数管理页面,新建函数,将复制的代码粘贴。



保存后点击新增触发规则,填写需要防护的域名。

注意事项目前公开版不支持http访问校验,http访问无法通过验证,请确保站点开启了HTTPS强制模式

验证是否开启成功

第一次访问响应码为202则代表成功开启。

拓展用法

将静态资源加入白名单

修改之前的匹配规则,可参考下图

将某个地区/国家加入白名单,则该地区/国家则无需验证

将某个IP/IP段加入白名单

使用场景:内部IP过白,搜索引擎过白。

常见爬虫IP段

谷歌 https://files.imunify360.com/static/whitelist/v2/google.txt 或 https://developers.google.com/search/apis/ipranges/googlebot.json必应 https://www.bing.com/toolbox/bingbot.json百度(数据来源于互联网)101.110.56.192/29103.6.76.0/24104.193.88.0/24106.12.0.0/24115.231.186.0/24115.231.36.136/29115.231.36.192/27115.231.36.64/28115.231.42.0/24115.238.177.192/28116.247.112.144/28119.63.192.0/24119.75.208.0/2412.0.243.32/2712.1.72.32/2712.163.78.232/2912.24.35.232/29122.246.5.0/24150.242.120.0/24180.76.0.0/24182.61.0.0/24183.131.32.0/24183.131.50.160/27183.131.50.192/26183.131.53.160/29183.131.53.172/30183.131.53.224/27183.131.62.0/24185.10.104.0/24210.162.8.16/28222.199.188.0/2445.113.192.0/2463.243.252.0/24

修改人机验证有效期

默认人机验证有效期为30分钟,修改自定义有效期需要对代码进行修改,见下图。

另外源代码的SECRET_KEY支持自定义修改,一般情况下无需修改。PUBLIC_KEY不可修改

更好的客户端IP兼容性

第一步在EdgeOne中关闭IPv6访问。

第二步将源代码中的

const ip = request.headers.get('EO-Connecting-IP') || ''; 

修改为

const ip = (request.headers.get('EO-Connecting-IP') || '').split('.').slice(0, 3).join('.');

额外的WAF规则分享

速率限制

示例图片仅供参考,具体速率阈值需根据站点实际情况而定。


其他规则


下图用到的通配符

^Mozilla\/5\.0 \(



其他说明

  1. 人机验证在线生成工具生成的代码由自动化程序预先生成,部署前请先进行测试,如无法运行可尝试使用工具重新获取一份新的代码。

  2. EdgeOne边缘函数有免费额度上限(3百万次请求,3百万毫秒CPU时间),对于小型站点、博客来说应该是够用的。

  3. 一般场景的防护,无感验证V1应该足以应付。

  4. 这个代码生成工具是一次尝试,后续是否持续更新取决于该工具实际使用的人数。

  5. 计划上线的验证方式:① 五秒盾V1 ②对接第三方验证码