有没有可能绕过 cloudflare 安全检查的方法?

And*_*dra 15 security captcha recaptcha cloudflare server

我们都知道,有时 cloudflare 喜欢检查其客户端访问者,以确保访问者不是真人。安全检查要求我们通过 Google Recaptcha。我想问是否可以使用我们自己的服务器来传递它(即使使用远程服务器并由我们自己回答验证码等)以及如何传递?

Deb*_*anB 13

当您访问受 cloudflare 保护的网站时,它将包含您无法绕过的安全检查,如果失败,您的访问最终会被拒绝,并且由于来自低信誉 IP 地址的请求,您将被重定向到验证码质询页面。

IP 信誉是根据蜜罐项目、外部公共 IP 信息以及来自Web 应用程序防火墙DDoS的内部威胁情报计算的。


解决方案

在这些情况下,潜在的解决方案是使用unDetected-chromedriver来初始化Chrome 浏览上下文

unDetected-chromedriver是一个优化的 Selenium Chromedriver 补丁,它不会触发 Distill Network / Imperva / DataDome / Botprotect.io 等反机器人服务。它会自动下载驱动程序二进制文件并对其进行修补。

  • Python 示例代码:

    import undetected_chromedriver as uc
    from selenium import webdriver
    
    options = webdriver.ChromeOptions() 
    options.add_argument("start-maximized")
    driver = uc.Chrome(options=options)
    driver.get('https://bet365.com')
    
    Run Code Online (Sandbox Code Playgroud)

选择

另一种解决方案是使用以下步骤通过Project Honey Pot网站将您的 IP 地址列入白名单:

  • 您必须编辑页面规则,只要请求与您定义的以下两个基本原则之一匹配,就会触发某些操作:
    • 只有最高优先级的匹配页面规则对请求生效。
    • 页面规则在 Cloudflare 仪表板中按降序排列,优先级最高的规则位于顶部。
  • 在防火墙应用程序的“设置”选项卡中或通过页面规则禁用“受到攻击”模式(高级 DDOS 保护),安全级别会显示 JS 质询页面。

TL; 博士

您可以在标题为“注意需要多一步验证码 CloudFlare 错误”的视频中找到详细的端到端流程。


Ema*_*l S 5

当然,这可以通过多种方式实现。其中之一是使用解析 JavaScript 的“真实模拟浏览器”。

另一种方法是 - 如果您在无头服务器上运行它 - 使用无头浏览器来为您完成此操作。在第一个请求之后,您可以存储 cookie 并在基本的 http 客户端(如 jsoup (java))中重用它。

使用 JBrowserDriver(无头)和 java 的示例:

JBrowserDriver jBrowserDriver = null;

public JBrowserDriver getDriver(Boolean headless) {
        if (jBrowserDriver == null) {

            log.info("JBrowser was null, initalizing");

            jBrowserDriver = new JBrowserDriver(Settings.builder()
                    .timezone(Timezone.EUROPE_BERLIN)
                    .ssl("compatible")
                    .cache(true)
                    .javascript(true)
                    .headless(headless)
                    .userAgent(UserAgent.CHROME)
                    .logTrace(true)
                    .loggerLevel(Level.ALL)
                    .build());

        }
        return jBrowserDriver;
}


private void testFunction() {
 // .. 
    jDriver.get("https://cloudflare.site");
    driverCookies = jDriver.manage().getCookies();
    
    HashMap<String, String> cookieMap = new HashMap<>();

    driverCookies.forEach(cookie -> cookieMap.put(cookie.getName(), cookie.getValue()));

    Document document = Jsoup.connect(requestPage).cookies(cookieMap).get();

}
Run Code Online (Sandbox Code Playgroud)

我对绕过云耀斑造成的任何损害不承担任何责任,但只要人类可以绕过它,模拟客户端就总是可以做到这一点。

编辑:如果后面还有一个验证码,则可能很难绕过它。但如果您没有登录谷歌帐户,或者服务器认为您是机器人,通常会发生这种情况。只需重复使用 google 身份验证生成的 cookie,并确保始终重复使用并发送相同的 cookie。

Cloudflare 还会检查(不确定)您的客户是否请求 css 和 javascript 等资产。

您可能还需要通过假客户端来请求它们。


dre*_*010 1

对于你自己来说,是的,你可以。

您可以为您的 IP 地址创建自定义规则,并将安全级别设置为基本关闭

Security Level是控制是否向特定访问者提出挑战的因素。

通过禁用 IP 地址的安全级别,您可以在自己的站点上有效地绕过此保护。

  • 这对其他网站没有帮助...... (2认同)
  • 该问题具体询问如何为自己的服务器绕过它。 (2认同)