本帖最后由 IPLark 于 2024-11-5 15:56 编辑
受Hostloc标题字数限制,不得以删减标题,原帖标题
【测试】基于Cloudflare的人机验证拓展(302验证、JS验证、图片验证码、hCaptcha等)
前言
Cloudflare CDN 默认支持三种验证码模式,即
JS验证(JS Challenge)、
交互验证(Interactive Challenge)和
托管质询(Managed Challenge)。
JS验证开启后,访客访问网页会先被要求进行验证,但整个过程是自动的,用户无需进行额外操作;与JS验证不同,
交互质询需要用户进行点击验证框才能完成验证,而
托管质询则是前两者的结合,即Cloudflare会根据访客IP、设备环境等多维度来选择对访客实施JS还是交互验证。
在某些场合下,虽然网站使用了Cloudflare,但可能不想启用默认的验证模式,而是有启用更轻量或者更复杂的验证码的需求,以下基于Cloudflare人机验证的拓展正是基于某些~~无用的~~需求下诞生的。正如标题所言,
以下所有人机验证都不依赖网站源服务器,绝大部分借助Cloudflare相关功能实现,少部分使用第三方服务(如hCaptcha)。
验证模式
目前共有以下6种验证模式
模式 | 交互(是否需要用户进行额外操作) | 是否仅借助Cloudflare完成 |
预先过滤 | 否 | 是 |
302 Cookie跳转 | 否 | 是 |
JS验证 | 否 | 是 |
点击验证码 | 是 | 是 |
图片验证码 | 是 | 否 |
hCaptcha | 是 | 否 |
预先过滤
说明:基于一些预设的规则和策略,屏蔽部分恶意请求。几乎覆盖全站,默认启用,具体策略访客不可见。
302跳转cookie验证
说明:几乎覆盖全站,默认启用。
示例
- https://iplark.com/playground/captcha/302
JS验证
说明:访客访问网站会自动进行JS验证,默认一小时有效期。
示例
- https://iplark.com/playground/captcha/js
点击验证码
说明:访客访问网站会被要求点击验证按钮才能完成验证,默认一小时有效期。(已知问题:访客网络状态不佳时,第一次验证可能会失败)
示例
- https://iplark.com/playground/captcha/click
演示动图
图片验证码
说明:访客访问网站会被要求根据图片输入正确的验证码,默认一小时有效期。(验证码生成服务目前搭建在近20台分散于不同服务商的免费Shared hosting,并有容错处理,保守估计可以承受8000qps,验证码校验依赖于Cloudflare)
示例
- https://iplark.com/playground/captcha/image
演示动图
hCaptcha
说明:访客访问网站会被要求完成hCaptcha验证。(验证码服务由hCaptcha提供,校验由Cloudflare完成)
示例
- https://iplark.com/playground/captcha/hcaptcha
演示动图
其他说明
目前仅是功能测试,Just for
Fun!