仅需几分钟,为腾讯云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 \(
其他说明
人机验证在线生成工具生成的代码由自动化程序预先生成,部署前请先进行测试,如无法运行可尝试使用工具重新获取一份新的代码。
EdgeOne边缘函数有免费额度上限(3百万次请求,3百万毫秒CPU时间),对于小型站点、博客来说应该是够用的。
一般场景的防护,无感验证V1应该足以应付。
这个代码生成工具是一次尝试,后续是否持续更新取决于该工具实际使用的人数。
计划上线的验证方式:① 五秒盾V1 ②对接第三方验证码