AWS WAF 中的验证码和挑战 | 网页抓取时如何解决这个问题

news2024/9/20 1:02:57

正如许多企业或爬虫用户所知,AWS WAF(Web 应用防火墙)是一个强大的安全解决方案,旨在保护 Web 应用免受常见的网络攻击和漏洞。其关键功能之一是使用 CAPTCHA 和挑战来区分合法用户和潜在的恶意机器人。虽然这增强了安全性,但也会为 Web 爬虫活动带来显著的障碍和一些不必要的麻烦。所以在本文中,我们将探讨 AWS WAF 中的 CAPTCHA 和挑战,并讨论如何克服这些障碍,以确保 Web 爬虫和企业活动顺利进行。

了解 AWS WAF 的 CAPTCHA 和挑战

众所周知,AWS WAF 通过 CAPTCHA 和挑战作为其防御机制的一部分,来防止自动化攻击和未经授权的访问。这些措施旨在验证与 Web 应用交互的用户是人类而不是机器人。例如,当您的 Web 爬虫活动中某个请求被认为是可疑时,AWS WAF 可能会向您展示 CAPTCHA 或挑战。

解决重复失败的令人烦恼的验证码吗?

发现无缝自动验证码解决方案,使用 Capsolver 的 AI 驱动自动 Web 解封技术!

使用 优惠码 领取顶级验证码解决方案;CapSolver: WEBS。兑换后,您将每次充值额外获得 5% 奖励,无限制。

  1. IP 匹配条件

Amazon WAF 可以使用无类别域间路由(CIDR)表示法为每个 IP 匹配条件配置最多 10,000 个 IP 地址范围。每个列表受此限制的约束。允许列表、拒绝列表(手动 IP 列表组件)和第三方 IP 阻止列表(IP 列表解析组件)是单独的列表,每个限制 10,000 个 IP 地址。可以手动修改允许和拒绝的 IP 集以根据需要添加或删除 IP 地址。

  1. 嵌入在 Web 应用中的蜜罐

将创建一个很少访问的端点作为蜜罐,以检测和转移内容抓取器和恶意机器人的入站请求。普通用户不会尝试访问此端点。但是,内容抓取器和恶意机器人(如扫描漏洞和抓取数据的恶意软件)可能会尝试访问蜜罐端点。在这种情况下,Amazon 将检查请求以提取其来源,然后更新相关的 Amazon WAF 规则,以阻止该 IP 地址的后续请求。

此外,AWS 通常有三种类型的验证码:

  1. 下面是一个图片网格拼图的示例。拼图要求您选择网格中包含特定类型对象的所有图片。

  2. 另一种常见的验证码是如下图所示,要求您确定绘图中汽车路径的终点。

  3. 最后一种是音频 CAPTCHA,它利用背景噪音叠加在语音上的原理。当然,与拼图一样,如果您有正确的方法,音频 CAPTCHA 也可以自动解决。

如何识别 AWS WAF?

  1. 请求 URL 的响应头检查

当请求一个 URL 时,如果响应状态码通常为 405 且响应头包含字段 X-Amzn-Waf-Action: captchaX-Amzn-Errortype: ForbiddenException,则表示当前访问被 AWS WAF 阻止。

  1. 响应 HTML 中的出现

当响应 HTML 包含诸如 awsWafcaptcha.awswaf.com 等信息时,表示需要进行 AWS 验证码处理。

<script type="text/javascript">
window.awsWafCookieDomainList = [];
window.gokuProps = {
    "key":"AQIDAHjcYu/*****",
    "iv":"CgAHfjMvRjAAAA3q",
    "context":"MK7Z1IlZc****"
};
</script>
<script src="https://***.token.awswaf.com/***/challenge.js"></script>
<script src="https://***.captcha.awswaf.com/****/captcha.js"></script>

解决 WAF 的技巧

我们可以通过 CapSolver 实现合规的自动拼图解决。CapSolver 是一个提供验证码识别解决方案的服务。它为不同的验证码系统(包括 WAF)提供各种任务类型。

CapSolver 提供两种验证码解决服务,可以帮助您轻松解决 WAF。一个服务是使用 CapSolver 的 API,另一个是下载 扩展。

接下来按照我的步骤,看看如何在 Web 抓取中实现自动化解决方案,非常简单,让我们深入探讨!

步骤 1 登录

您可以 注册 CapSolver 并访问我们的 CAPTCHA 服务,目前支持免费试用。

步骤 2 获取您的免费 API!

注册后,您可以从主页面板获得您的 API 密钥。

代码示例

要通过代码获取有效的 aws-waf-token,您可以使用 Python、Go、JavaScript 等主流语言,以下是使用 Python 获取的方法:

# pip install requests
import requests
import time

api_key = "YOUR_API_KEY"  # TODO: your api key of capsolver
site_url = "https://efw47fpad9.execute-api.us-east-1.amazonaws.com/latest"  # TODO: page url of your site

def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'AntiAwsWafTaskProxyLess',
            "websiteURL": site_url
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")

    while True:
        time.sleep(1)  # delay
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('cookie')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return

token = capsolver()
print(token)

很快,您将看到输出是所需的 aws-waf-token

Got taskId: 373a6363-c03f-48d5-85eb-05e553980a64 / Getting result...
2d8415fb-43ec-42c5-8106-c51194d5eb14:EQoAljIa3jkRAAAA:Z+bkUZcJEl90QIM46acsmio......

接下来,尝试看看 aws-waf-token 是否实际有效。

def check_website(token):
    headers = {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
        "accept-language": "en-US,en;q=0.9,sq;q=0.8,ak;q=0.7,ar;q=0.6,an;q=0.5,am;q=0.4,as;q=0.3,az;q=0.2,ast;q=0.1,ee;q=0.1,ay;q=0.1,ga;q=0.1,et;q=0.1,oc;q=0.1,or;q=0.1,om;q=0.1,eu;q=0.1,be;q=0.1,bm;q=0.1,bg;q=0.1,nso;q=0.1,is;q=0.1,pl;q=0.1,bs;q=0.1,fa;q=0.1,bho;q=0.1,br;q=0.1,tn;q=0.

1,fi;q=0.1,fr;q=0.1",
        "cookie": token,
    }
    res = requests.get(site_url, headers=headers)
    print(f"Got response {res.status_code}")
    print(f"Cookies: {res.cookies}")

check_website(token)

结论

虽然 AWS WAF 的 CAPTCHA 和挑战可以有效防止恶意机器人,但也可能对合法的 Web 爬虫活动带来不便。然而,通过理解 AWS WAF 的工作原理并采用像 CapSolver 这样的解决方案,您可以绕过这些障碍,确保 Web 爬虫活动顺利进行。记住,安全和合规同样重要,因此在实施任何自动化解决方案时,请确保遵循相关的法律和道德准则。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1858585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

session 共享、Nginx session 共享、Token、Json web Token 【JWT】等认证

.NET JWT JWT 》》Json Web Token header . payload . Signature 三部分组成 JWT 在线生成 》》 https://jwt.io/ 》》https://tooltt.com/jwt-encode/ 》》解码工具 https://tool.box3.cn/jwt.html JWT 特点 无状态 JWT不需要在服务端存储任何状态&#xff0c;客户端可以携…

华为开发者大会闪耀东莞,康佳电视携手海思惊艳亮相

近日&#xff0c;华为开发者大会&#xff08;HDC2024&#xff09;在东莞松山湖举行。 作为电视领域唯一受邀参展的品牌&#xff0c;康佳电视以其优秀的创新实力&#xff0c;携手华为海思共同展示了基于OpenHarmony Standard层级的鸿鹄媒体创新方案。该方案不仅能够为用户带来更…

网络构建关键技术_1.网络高可用设计

1.网络高可用性概述 随着网络快速发展及应用日益深入&#xff0c;各种核心和增值业务在网络上广泛部署&#xff0c;网络的作用愈来愈凸显出来。即使网络出现短时间中断&#xff0c;都可能对业务带来比较大的影响&#xff0c;甚至给企业造成一定程度的经济损失。因此&#xff0c…

LeetCode 算法:对称二叉树 c++

原题链接&#x1f517;&#xff1a;对称二叉树 难度&#xff1a;简单⭐️ 题目 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;ro…

FreeRTOS实时操作系统

1.认识实施操作系统 1.1 裸机和实时操作系统 裸机&#xff1a; 早期嵌入式开发没有嵌入式操作系统的概念&#xff0c;直接操作裸机&#xff0c;在裸机上写程序&#xff0c;比如用51单片机基本就没有操作系统的概念。 通常把程序设计为前后台系统&#xff0c;主要分为两部分&a…

路由(urls)

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 Django的URL路由流程&#xff1a; l Django查找全局urlpatterns变量&#xff08;urls.py&#xff09;。 l 按照先后顺序&#xff0c;对URL逐一匹…

我做个人站长 7 年的经验,最痛的莫过于。。

大家好&#xff0c;我是程序员鱼皮&#xff0c;从大学期间上线个人博客网站开始&#xff0c;我做个人站长已经有 7 年多了。在这个过程中&#xff0c;我收获了很多&#xff0c;除了技术成长带来的快乐外&#xff0c;个人站长最开心的莫过于有用户使用、并且留下好评&#xff0c…

数据库精选题(七)(综合模拟题二)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;数据库 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 一、名词解释 1、事务 2、弱实体集 3、正…

顶尖项目经理都在用的SOP

接受任务SOP 了解任务背景了解任务目标&#xff08;包含deadline&#xff09;拆解任务&#xff0c;确认负责人执行方案审批确认跟进执行并定期汇报验收结果&#xff0c;进行反馈相关文档存档&#xff0c;形成闭环 推进任务SOP - PDCA循环 制定计划 Plan。依据目标&#xff0c…

【面试题】面试小技巧:如果有人问你 xxx 技术是什么?_面试问你对什么技术特别了解

前端工程越来越大&#xff0c;前面几种方案不能很好的支持单元测试。 在这样的背景下&#xff0c;React 诞生了。React 带来了新的思维模式&#xff0c;UI fn(props)&#xff0c;React 中一个组件就是一个函数或者一个类&#xff0c;一个函数或者一个类就是一个基础单位&…

OpenFeign 的请求处理流程

流程 1. 定义 Feign 客户端接口 首先&#xff0c;开发者需要定义一个 Feign 客户端接口&#xff0c;并使用 FeignClient 注解进行配置。例如&#xff1a; FeignClient(name "aService", url "http://localhost:8080") public interface ServiceProvid…

数据库 复习题

有一个关系模式&#xff1a;工程关系&#xff08;工程号&#xff0c;工程名称&#xff0c;职工号&#xff0c;姓名&#xff0c;聘期&#xff0c;职务&#xff0c;小时工资率&#xff0c;工时&#xff09;&#xff0c;公司按照工时和小时工资率支付工资&#xff0c;小时工资率由…

【面试题】马上金九银十了,简历该准备起来了,面试题你准备好了吗 ?浅谈 JS 浅拷贝和深拷贝

代码展示 let obj_old {name: Tom,age: 15,favorite: {food: bread,drink: milk} } let obj_new {...obj_old} console.log(obj_old obj_new) // false console.log(obj_old.name obj_new.name) // true console.log(obj_old.favorite obj_new.favorite) // true3. Ar…

什么是档案业务建设评价

档案业务建设评价是对档案管理机构或部门在档案业务建设方面进行的评估和考核。评价主要根据一定的评价标准和指标&#xff0c;对档案业务的各个方面进行综合评估&#xff0c;包括档案收集、整理、保管、利用等环节&#xff0c;以及档案管理机构的组织管理、技术能力等方面。 评…

OnlyOffice:现代办公的最佳选择

目录 安装 使用 评价 对比&#xff08;与WPS&#xff09; 总结 在当今的数字化办公时代&#xff0c;选择一款功能全面且易于使用的办公软件至关重要。OnlyOffice作为一款现代化的办公软件&#xff0c;凭借其强大的功能和友好的用户体验&#xff0c;逐渐成为了众多企业和个…

【ONLYOFFICE震撼8.1】ONLYOFFICE8.1版本桌面编辑器测评

随着远程工作的普及和数字化办公的发展&#xff0c;越来越多的人开始寻找一款具有强大功能和便捷使用的办公软件。在这个时候&#xff0c;ONLYOFFICE 8.1应运而生&#xff0c;成为了许多用户的新选择。ONLYOFFICE 8.1是一种办公套件软件&#xff0c;它提供了文档处理、电子表格…

19、删除链表的倒数第

1、题目描述 给你一个链表&#xff0c;删除链表的倒数第 n 个结点&#xff0c;并且返回链表的头结点。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], n 2 输出&#xff1a;[1,2,3,5]示例 2&#xff1a; 输入&#xff1a;head [1], n 1 输出&#xff1a;[]示例 …

数字图像处理实验报告小论文(Matlab语言)

1.课题分析 在当今信息化社会&#xff0c;图像处理技术已成为众多领域不可或缺的一部分&#xff0c;从医学影像分析到安防监控&#xff0c;再到日常生活中的图片美化&#xff0c;图像处理技术都发挥着至关重要的作用。本次课题主要聚焦于图像灰度处理、图像小波变换和图像分割这…

数字货币与区块链生态

前言&#xff1a;区块链技术与数字货币这一文详细介绍了区块链技术&#xff0c;感兴趣的可以先看看这篇文章 1.比特币之后的数字货币与区块链发展 2.区块链形态 • 无许可区块链&#xff08;permissionless blockchain&#xff09; 用户无需许可即可加入区块链网络 • 许…

【简单讲解下C++max函数的使用】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…