一、背景 

2021年的re:Invent大会发布了Amazon WAF 验证码功能即 Captcha。Captcha 是 Completely Automated Public Turing test to tell Computers and Humans Apart(全自动区分计算机和人类的图灵测试)的首字母缩写,通常用于区分机器人和人类访客,以防止 Web 抓取、凭证填充和垃圾邮件等恶意活动。

本文编写时候 Amazon WAF Captcha 已经在部分 Region 的区域级的 Amazon WAF 上推出,未来将 Amazon CloudFront 以及更多 Region 获得支持。有关信息可以参考如下网址(中文):

https://aws.amazon.com/cn/about-aws/whats-new/2021/11/aws-waf-captcha-support/?nc1=h_ls

Amazon WAF 验证码的使用场景包括但不限于:

  • 用户/管理员的登录页等 Landing Page

  • 被高频引用的界面,有被 DDOS 可能的页面

  • 有被 Bot 提交信息的风险的页面

  • 其他关键操作页面

Amazon WAF 验证码的实现方式是在现有 Amazon WAF 规则处理中在 Action 行为可选择允许Allow、阻止Block和计数Count的基础上,增加了选项Captcha,即验证码规则。这就意味着当这条规则被触发时候,之前只能选择通过或者拒绝,现在可以选择跳转到验证码页面进行人机验证,认证通过则可以访问,认证失败则阻断访问。由于 Amazon WAF 验证码成为了 Action 选项的一部分,因此意味着验证码规则可单独使用也可组合其他规则使用。

本文描述配置一个直接防护场景,对管理员路径访问如 https://xxx.com/admin/ 进行验证码防护。

二、为特定规则开启验证码 

本文假设已经有一个正在运行的 Amazon WAF 规则,接下来新增验证码防护。

1、设置自定义规则组(Rule Group)

进入到 WAF & Shield 界面下,点击左侧 Amazon WAF 菜单中的 Rule groups菜单,显示当前已经存在的规则组。点击页面上方中央切换 Region 的下拉框,默认显示为 US East(N.Virginia),点击这个下拉框切换到已经支持 Amazon WAF 验证码的区域(Amazon CloudFront WAF 和更多支持 Region 即将支持)。然后点击右上角的创建按钮。如下截图。

在创建规则组第一步,输入名称,确保区域正确,然后点击下一步继续。如下截图。

在创建向导第二步,点击 Add 按钮。如下截图。

在 Rule Builder 界面,点击右上角的 Rule visual editor,在 Name 名称位置输入希望使用的名称,在 Type 位置选中 Regular rule。在页面下方请求条件 If a request 位置选择 matches the statement。如下截图。

在配置规则的下方,选择 Inspect 类型是 URI path,即对访问路径做检查。在 Match type 匹配类型位置,选择 Contains string 表示包含如下字符。在 String to match 位置输入要匹配的关键路径,例如输入/admin。在下方 Text transformation 位置选择 None 表示不变换。继续向下滚动页面。如下截图。

在页面上的 Action 位置选择类型是 CAPTCHA,选中 Set a custom immunity time for this rule 选中这个选项,在 Immunity time 位置输入86400秒,表示认证通过的 token 有24小时有效。最后点击右下角 Add rule 位置。如下截图。

返回向导界面,在页面上的 Rule 清单下已经可以看到这条规则。在 Capacity位置无需修改,保持默认的数字即可,点击右下角的 Next 按钮。如下截图。

在向导第三步设置优先级位置,保持默认,点击 Next 按钮继续。如下截图。

在创建向导最后一步,点击右下角的 Create rule group 完成创建。如下截图。

至此规则组创建完成。界面上显示绿色的表示创建完成。如下截图。

2、与现有的 WEB ACL 绑定

进入到 WAF & Shield 界面下,点击左侧 Amazon WAF  菜单中的 Web ACLs 菜单。点击页面上方中央切换 Region 的下拉框,默认显示为 US East(N.Virginia),点击这个下拉框切换到已经支持WAF验证码的区域。这将列出当前已经存在的 ACL。点击当前的 Web ACL 的名字继续。如下截图。

进入 Web ACL 配置详情,点击第二个标签页 Rules,点击右上角的 Add rules 按钮,选择下拉菜单 A dd my own rules and rule groups。如下截图。

进入添加规则界面,点击最右侧的 Rule group 按钮,在下方名称位置输入自定义名称,然后向下滚动屏幕。如下截图。

在页面下方的 Rule group 位置,选择本文前一步创建好的规则组的名字。然后点击右下角的 Add rule 按钮。最后一个选项 Override rule group action - optional 里边对应的 Enable 不要选中。如下截图。

在设置规则优先级界面,可根据需要调整策略执行的优先级。也可以保持默认。如下截图。

配置完成。现在 Web ACL 中已经可以看到。如下截图。

至此 Amazon WAF 规则配置完成。

三、访问测试 

现在访问 Amazon WAF 防护的资源,在网址中包含 /admin 路径触发验证规则。点击 Begin 按钮即可开始人机验证。如下截图。可看到如下截图。

人机验证的几种形式包括拼图。如下截图。

路径解谜。如下截图。

听录音输入单词等。如下截图。

通过验证后,即可显示验证成功。如下截图。

随后页面会自动跳转到正常的网页访问。

至此 Amazon WAF Captcha 验证码配置完成。

四、参考文档 

参考文档:

https://docs.aws.amazon.com/waf/latest/developerguide/waf-captcha.html

本篇作者

刘辛酉

亚马逊云科技解决方案架构师

曾服务于 Parallels、Siemens,在 Atos 担任管理服务部首席架构师。拥有十余年数据中心、互联网技术经验,长期为制造、汽车等行业头部客户提供 IT 咨询和服务。加入亚马逊云科技后负责零售、快消、食品和制造等行业。擅长硬件、网络等领域设计。

听说,点完下面4个按钮

就不会碰到bug了!

使用 Amazon WAF 进行 Captcha 人机验证相关推荐

  1. 解决谷歌人机验证(Captcha)显示问题

    文章目录 前言 一.Header Editor 下载.安装与配置 1. 插件下载 2. 插件安装 3. 插件配置 前言 由于谷歌服务在国内不可用,所以正常访问时某些网址时,经常会出现需要人机验证的问题 ...

  2. OCR识别通过某瓣人机验证

    本篇文章将带你使用ocr识别通过人机验证码 豆瓣很骚,莫名其妙就总会出来人机验证,用了代理也过不去,感觉是通过cookies识别你是否为爬虫,一识别就出404弹个人机验证,为了防止爆人机,也想了很多方 ...

  3. Vaptcha验证码配置实现人机验证

    个人资源与分享网站:http://xiaocaoshare.com/ 官网免费注册地址:https://www.vaptcha.com/ 登录后创建验证单元 提交之后就可以获取vid和key 第一步, ...

  4. 亚马逊云服务器防火墙,Amazon WAF | Web 应用程序防火墙 | 亚马逊云科技

    Amazon WAF 是一款 Web 应用程序防火墙,可帮助保护您的 Web 应用程序或 API 免受可能影响可用性.危及安全性或消耗过多资源的常见网络攻击和机器人攻击.Amazon WAF 使您能够 ...

  5. 登录前的人机验证VAPTCHA

    具体查看官方文档:https://www.vaptcha.com/document/install.html 验证流程 1.创建验证单元,获取VID和Key ,需要去官方系统创建VID和Key 2.将 ...

  6. 阿里云人机验证(无痕)完整流程以及注意事项

    阿里云人机验证(无痕)完整流程及注意事项 1.文档链接:阿里云人机验证文档 2.无痕验证流程图: 3.开发注意事项 前端注意事项: 1.前端代码在购买服务后可以直接获取,或者参考官方文档内代码 2.前 ...

  7. 浅谈如何使用Google reCAPTCHA进行人机验证

    reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用.它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证. 它的使用方式如下如所示,只需勾选复 ...

  8. Google 人机验证(reCaptcha)无法显示解决方案

    Google 人机验证无法显示解决方案 第一步 安装插件 Chrome/Edge 电脑版 Firefox 电脑版 第二步 配置插件 原理 参考文章 前言:为了防止机器人攻击,国外很多网站都使用了 Go ...

  9. 使用Google reCAPTCHA进行人机验证

    reCAPTCHA是Google公司推出的一项验证服务,使用十分方便快捷,在国外许多网站上均有使用.它与许多其他的人机验证方式不同,它极少需要用户进行各种识图验证. 它的使用方式如下如所示,只需勾选复 ...

最新文章

  1. safari快捷图标不见了_Win7桌面图标不见了怎么办?附解决办法
  2. OpenStack基金会的白金和黄金成员公司
  3. VTK:相互作用之CallData
  4. 计算机英语反思总结,计算机在英语教学中辅助作用的反思
  5. Python计算校验文件的MD5、SHA1、SHA256和CRC32,获取文件创建日期、修改日期和文件大小
  6. deb下载路径、apt下载路径(deb路径、apt路径)、自定义打包deb文件、安装deb文件、解压deb文件
  7. 【Kafka】kafka 0.10.0 isr 不为空 但是不一致 导致获取消费组异常
  8. windows快速关闭有效方法2则
  9. 二维数组及以上维度的数组,本质是一维数组?(C语言)
  10. 全网首发:MAC上运行SHELL脚本,typeset -l报错
  11. Mirth学习笔记 - 建立Mirth通道
  12. GIS应用技巧之定义图框样式
  13. scMRA:一种健壮的深度学习方法,可以用多个参考数据集注释scRNA-seq数据
  14. python鸭子类型_Python 语言中的 “鸭子类型”
  15. 10、JDBC(重点)
  16. Navicat简单使用方法。
  17. MPI C++ jacobi迭代
  18. API接口测试及常用de接口测试工具
  19. tensorflow6-7
  20. 苹果手机怎么用计算机打出字,iPhone输入法忽然打不出中文怎么办?收下这份指南日常打字如飞!...

热门文章

  1. 拉卡拉遭联想控股减持:套现3亿 总经理陈烈辞职
  2. HTML CSS 学习整理
  3. P2P安防摄像头、门禁
  4. 做软件销售在中国有前途吗?
  5. 解决:启动program时出现问题,找不到指定模块
  6. 巴比特 | 元宇宙每日必读:数字藏品二级市场乱象丛生,00后成新韭菜,监管迫在眉睫?...
  7. memcached随笔练习
  8. 那些年,我做过的产品:有的死了,有的活了
  9. Apollo星火计划学习笔记——第六讲上自动驾驶感知基础(I)
  10. spssfisher判别分析步骤_spss进行判别分析步骤_spss判别分析结果解释_spss判别分析案例详解...