你是否厌倦了Cloudflare在试图搜刮网站时施加的限制?您是否在寻找绕过 Cloudflare WAF 的方法?那么这篇文章就是为你准备的。了解如何才能以道德的方式绕过这个CDN和安全应用。

由于互联网扩展到全球最远的地方,希望与世界任何地方的客户联系的企业面临着双重挑战。虽然一些企业网站可能会因为地理原因而遇到滞后,但其他网站可能会受到黑客攻击或安全漏洞的影响。

不过,延迟和安全漏洞的问题是可以克服的。内容交付网络(CDN)是解决互联网上延迟问题的一种方法。使用CDN,你必须在世界各地安装许多数据中心,并建立一个DNS系统,将你的请求路由到最近的边缘服务器。

另一方面,在你的系统实际处理在线请求之前,添加一个软件层或过滤器来筛选这些请求,是减少安全威胁的一种技术。这些程序需要大量的时间和金钱。在这种情况下,Cloudflare就会介入。

被称为Cloudflare的内容交付网络(CDN)提供各种服务,主要集中在网络和安全方面。在我们充分研究Cloudflare是什么以及他们做什么之前,我们必须首先承认,有些人–主要是网络搜刮者–对他们的服务印象并不深刻或满意。

从目标网站收集数据被称为 “网络爬行”。然而,这些爬虫被Cloudflare等机器人检测器视为危险。因此,有些人希望避免使用他们的服务,特别是他们的检测方法,这也是有道理的。在这篇文章中,我们将讨论如何绕过Cloudflare的机器人检测技术。


什么是Cloudflare?

Cloudflare是一家总部设在美国的公司,提供内容交付网络(CDN)服务、安全和其他广泛的服务,以加速和保护网站。当它在2010年首次开始私人运营时,Cloudflare并不是现在这个样子。它最初是一项研究计划,以确定垃圾邮件的原因。

Project Honeypot的创始人Lee Holloway和Matthew Prince于2004年将其概念化并推出。他们今天的目标是协助发展一个更好的互联网。因此,Cloudflare提供的服务中包括DNS、负载平衡、移动页面加速、缓存选项、Web应用防火墙(WAF)SSL/TLS支持DDoS保护等。

他们拥有并运行一个相当大的服务器网络,作为CDN和安全公司。这些服务器既能加快网页速度,又能抵御DDoS等有害攻击。客户可以使用Cloudflare提供的网络应用防火墙,它强调的是安全(WAF)。WAF可以从本质上保护应用程序免受各种安全风险的影响,包括凭证填充、DDoS攻击和跨站脚本(XSS)。

一般来说,利用Cloudflare等服务的网站更安全,为访问者提供更好的冲浪体验。与WordPress、谷歌云、IBM云等知名平台,它们有很强的整合能力。超过2600万个网站使用Cloudflare,它每天处理超过10亿个IP地址。

简而言之,Cloudflare是一个全球性的网络,旨在使您连接到互联网的任何东西都安全、私密、快速和值得信赖。这包括您的网站、API和网络应用。


Cloudflare是如何工作的?

在客户和服务器之间,Cloudflare充当中间人,通过反向代理镜像和缓存网站。它代表着你的网站的访问者必须通过的墙,而不是其他东西。Cloudflare还通过这种中介架构为安全提供一定程度的过滤。

它可以阻止垃圾邮件,阻止僵尸攻击,阻止分布式拒绝服务攻击,并通过在客户端和托管服务器之间设置障碍来检测恶意流量。不过,它是通过扫描向你的网站或在线应用程序提出的请求来实现的。

根据有问题的IP地址、访问的资源类型、请求的有效载荷和请求的频率,它搜索恶意的内容。它还考虑到了具有客户定义规则的防火墙。因此,被动和主动僵尸检测是Cloudflare将其检测技术分为的两大类。

主动式僵尸检测方法依赖于在客户端进行的测试,而被动式僵尸检测方法则是在后端使用指纹检查。Cloudflare使用各种被动僵尸检测方法,包括僵尸网络检测、IP信誉(风险或欺诈得分)、HTTP请求头和TLS指纹。另一方面,Cloudflare采用的主动僵尸检测方法包括CAPTCHAs、事件跟踪、画布指纹和环境API查询。


如何绕过Cloudflare网络应用防火墙(WAF)

Cloudflare以其严格的行为准则而闻名。如前所述,他们利用被动和主动的僵尸检测方法。然而,问题是,Cloudflare能被绕过吗?这可能具有挑战性,但是,是的,Cloudflare可以被绕过。这是因为并非所有爬虫都是恶意的。这些机器人中的许多人都在执行从网站生成数据的任务。

然而,有不同的技术来实现这一点,但在这次会议上,我们要看一下其中的几个。

1.尊重Robots.txt

机器人的专属标准或机器人排除协议也被称为 robots.txt。使用Cloudflare的网站利用它作为网络爬虫、搜刮者和其他网络自动化机器人的通信工具。虽然某些在线搜刮公司,包括一些搜索引擎,如谷歌和必应,尊重网站的robots.txt文件,但大多数网络搜刮者,如电子邮件收获者,以及众多其他机器人,并不尊重。另外,网站所有者有权决定是否允许对其网站进行抓取或搜刮。

虽然其他网站可以搜刮一些网页,但有些网站禁止机器人这样做。网络爬虫在搜刮时应尊重网站的robot.txt文件。你应该遵守该文件中关于你可以搜刮的次数和你可以搜刮的网页的准则。尽量避免在短时间内不断向网站提出请求,使其不堪重负。


2.使用高质量的代理服务器

在试图搜刮受保护的网站时,被动地绕过Cloudflare的一个技巧是使用高质量的代理服务器。你需要一个不会泄露你的凭证的方法,特别是如果你在一个集成了Cloudflare的网站上从事刮削活动。因此,大多数网站都会记录其访问者的IP地址。

因此,在对一个重要的网站进行广泛的搜刮操作时,应该保留大量的IP地址。为此,像BrightData这样的住宅代理供应商是很好的代理服务。它有一个庞大的IP地址池来完成这项工作。

你也可以寻找像MyPrivateProxy这样的私人代理供应商,以获得正确的IP地址池,适当掩盖你的身份,从而绕过Cloudflare的检测。为可靠起见,住宅和私人代理的效果最好,尽管他们可能会花费你超过一分钱。这方面的全部实质是,代理确保Cloudflare检测不会看到你。


3.注意HTTP头文件

利用HTTP头部请求,Cloudflare可以判断你是否是一个机器人。非浏览器的用户代理,如python-requests/2.22.0,可以简单地将一个搜刮者识别为机器人。通过HTTP请求头修改规则,你可以改变进入的HTTP请求的头。这个准则集将使你能够做到这一点。首先设置一个字面字符串值作为HTTP请求头的值。它以前的值将被替换成这个,或者请求将收到一个新的头。

第二,通过添加一个新的头或根据表达式覆盖一个现有的头来改变HTTP请求头的值。幸运的是,从请求中删除一个HTTP头是可能的。然而,你可以使用API或仪表板来建立一个HTTP请求头修改规则。


4.改变你的爬行模式。

对于不知道如何抓取网站而不被阻止的人来说,在搜刮时被列入黑名单是一个常规问题。人类通常会改变任务,不会重复执行。他们在搜刮时表现出非理性的行为。

另一方面,由于它们被设计成这样,机器人总是以同样的方式爬行。除非有特别指示,否则它们从不改变模式。从本质上讲,爬行模式描述了你的爬虫是如何被设置为浏览网页的。

如果您继续使用相同的爬行模式,Cloudflare将识别您并阻止您。为了使你的爬行看起来不那么可预测,你可以增加零星的点击、滚动和鼠标移动。然而,这种行为不应该是完全不可预测的。在创建爬行模式时,考虑一个典型的用户会如何浏览网站,然后将这些原则正确地应用到工具上。


5.谨慎对待Honeypots

网站采取极端的预防措施,如整合Cloudflare来防止黑客。他们设置了Honeypots(蜜罐)来引诱黑客,并找出网站上是否有任何黑客的企图。在HTML代码中,链接被称为Honeypots。

虽然这些链接对有机用户是隐藏的,但网络爬虫可以看到它们。由于只有机器人会点击该网站,因此采用蜜罐来识别和防止网络爬虫。设置蜜罐涉及相当多的工作。

因此,没有多少人选择这种方法。然而,要注意的是,如果你的请求被拒绝而发现有爬虫,你的目标可能正在使用蜜罐陷阱。很明显,这种检测很困难,需要大量的编程努力才能正确完成。因此,这种技术的服务器端和机器人或搜刮者端都不常用。


6.使用无头浏览器

使用无头浏览器是绕过Cloudflare检查的另一种方法。网站上出现的内容根据所使用的浏览器而不同。这方面的问题是,在进行任何形式的数据搜刮时,渲染内容的是JS代码,而不是服务器的原始HTML响应。在这种情况下,可以使用无头浏览器来避免限制。甚至在无头模式下利用Chrome浏览器也是避免Cloudflare机器人检测的一种方法。

利用undetected-chromedriver来设置Chrome浏览器的上下文是比较有效的方法之一。Undetected-chromedriver是一个Selenium Chromedriver补丁,经过优化,它不会激活Distill Network、Imperva、DataDome或Botprotect.io等反僵尸服务。试试 Selenium 或 puppeteer-extra-plugin-stealth,以提高成功率。


7.不要与JavaScript的挑战相矛盾

嵌套的JavaScript元素使数据难以获得。众多的JavaScript功能被网站用来响应特定的用户活动来显示内容。只有在用户输入一些信息后,才会在搜索栏中显示产品照片,这是标准程序。

许多其他问题,包括内存泄漏、应用程序不稳定,以及偶尔的完全崩溃,也可能是由JavaScript带来的。动态功能经常是一个麻烦。JavaScript应该只在极端情况下使用。


8.使用验证码解决服务

最受欢迎的反刮擦工具之一是验证码。网站要求用户完成各种谜语,以验证他们是否是人类。因此,爬虫通常无法绕过网站的验证码。即使是最熟练的网络搜刮者也会偶尔遇到验证码。

然而,使用验证码解决方法绕过Cloudflare检测是另一种选择。 因此,为了确保你在集成了Cloudflare的网站上的搜刮操作不受干扰。有各种验证码解决服务可用于该任务。基于机器学习或人类的解算器都是合适的。

谷歌浏览器的插件2CaptchaSolver就是一个自动执行的例子。不过,并非所有具有挑战性的验证码都能被它解决。在受Cloudflare保护的网页上,显然没有简单的方法可以绕过验证码。但要做到这一点,你必须理解Javascript代码是如何对令牌进行加密的。所以你可以检查回调函数代码,你可以使用谷歌浏览器的2Captcha Solver插件。


9.警惕网站布局的变化

众多网站除了Cloudflare的机器人检测外,还可因多种原因改变其设计。刮削器可能会在一些网站的动态布局中挣扎,因为它们经常变化。在网站上可以在意想不到的地方看到设计。大型网站也采用这种技术。

为了继续进行网络抓取,你的爬虫必须能够识别这些持续的变化。你可以通过跟踪每次爬行的成功请求数来轻松实现这一目标。使用XPatga或CSS选择器,你也可以从这些网站上抓取信息。


10.在爬行过程中不要给服务器加压。

自动解决方案正变得越来越普遍,随着越来越多的人转向网络刮削获取数据,使个人能够迅速将网络数据转化为电子表格以解决问题。由于网络刮削过程,目标网站面临着更大的压力。如果爬虫不加节制地向网站发送过高的请求量,网站的服务器可能会瘫痪。

正因为如此,搜刮者经常收到禁令。反搜刮方法是为了识别这种奇特的活动并阻止IP。放慢你的一些请求以避免这种情况。Python的时间模块在这方面很有用,尽管一个智能的反搜刮工具仍然可以发现它。因此,在时间模块下选择随机选项,以模拟人类行为。


关于 绕过Cloudflare常见问题

Q.是否有办法在搜刮时绕过Cloudflare?

使用Cloudflare作为保护的网站将有你无法绕过的安全检查。有时,未能通过这些测试会导致访问被拒绝。来自声誉不佳的IP地址的请求可能导致你被转发到验证码挑战页面。

不过,为了摆脱所有这些,有一些技术可以避免Cloudflare检测。绕过Cloudflare检测的一些过程包括使用验证码解决方法,使用无头浏览器,以及注意robots.txt和蜜罐,等等。 要了解其他情况,请回顾本文的主题。

Q.我为什么要绕过Cloudflare?

如果你不需要绕过Cloudflare的检测,它是完全好的。此外,Cloudflare的机器人检测服务本身并不可怕。简单地说,它不赞成数据挖掘工具和搜刮活动。除了那些被列入白名单的机器人爬虫外,其他机器人爬虫也被认定为威胁。如果你没有绕过它,你的网络搜刮程序就不会收集你需要的那种和大量的数据。

Q.绕过Cloudflare是否违法?

当涉及到法律问题时,这可能是一个非常困难的话题。然而,如果你在一个你不拥有或没有授权进行DDoS攻击的网站上合法绕过Cloudflare,你就犯法了。说白了,有一些道德上的方法可以避免被Cloudflare发现。如果你违约,你的行为可能被视为犯罪。因此,在实施旁路之前,了解旁路的法律意义是明智的。


总    结

数据已经成为许多人和组织的驱动力,因此有必要进行数据刮削。虽然有些网站会允许这样做,但其他网站则不允许。在受到Cloudflare等网络解决方案保护的网站上,搜刮可能会变得异常困难。虽然Cloudflare本身并不是负面的,但它只是限制了网络爬虫。

正如本篇文章所表明的那样,在这些网站上执行搜刮任务的一种方法是超越Cloudflare的检测机制。你可以通过一些不同的方式绕过Cloudflare,我们已经详细介绍了这些方式。看一下这些方法,看看哪种方法对你的绕行最有帮助。

这篇文章有用吗?

点击星号为它评分!

平均评分 / 5. 投票数:

到目前为止还没有投票!成为第一位评论此文章。

No more articles