SSO登录增加人机验证

## 前言 一直以来,防止机器人消耗资源一直都是广大开发者所头疼的问题。 为了防止机器人占用资源,危害网站运行,我们一般会接入云服务商的Challenge或者自建。 为了低成本(实际上是零成本)运行我的网站,我一直是把Serverless架构的博客托管在EdgeOne上,但EdgeOne貌似并没有验证码功能 于是我就选择了利用边缘函数Serverless自建一个人机验证程序。 ## 实践 我首先是想到了用~~Qedge~~(之前用的一个CDN服务商,后面因为操作麻烦就不用了)开启WAF代理EO边缘函数一个端点,这个端点触发后会生成一个UUID,储存在服务器,因为前面放了一层WAF人机验证,例如6位数字、无感、滑动,因此能触发生成UUID的就一定是通过了人机验证的。 但由于QEdge操作不便,加上最近要迁移,还不能一键导入配置(不知道又是那里偷来的系统),然后带宽国内线路低(多数时候不到1Mbps,bug多等太多原因),所以不用了,所以我只能自己解决验证码。 我首先就用了python的captcha库生成了5000个6位数字的图,用了各种OCR采样测试后确保安全。 然后把这些图片上传到EOPages上,然后在边缘函数设置了几个端点: > 获取请求页面SPA > 加载challenge图片 > 提交Challenge图片 > 后端验证Challenge Code 搭建完后测试,效果十分满意

©2026 秋名山香蕉 ,文章内容采用 CC BY-NC-SA 4.0 许可

SupabaseTencent Cloud 强力驱动

萌ICP备20250480号