Security 是否有任何可能的方法绕过cloudflare安全检查?

Security 是否有任何可能的方法绕过cloudflare安全检查?,security,server,recaptcha,captcha,cloudflare,Security,Server,Recaptcha,Captcha,Cloudflare,我们都知道,有时候cloudflare喜欢检查他们的客户访客,以确保访客不是真人。安全检查要求我们通过Google Recaptcha。我想问的是,在使用我们自己的服务器时(即使使用远程服务器,自己回答验证码等),是否可以传递这些信息?如何传递这些信息?对于您自己,是的,您可以 您可以为IP地址创建一个安全级别,并将安全级别设置为“基本关闭” 是控制是否向特定访客提出挑战的因素 通过禁用IP地址的安全级别,您可以在自己的站点上有效绕过此保护。当您访问受cloudflare保护的站点时,它将包含一

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

对于您自己,是的,您可以

您可以为IP地址创建一个安全级别,并将安全级别设置为“基本关闭”

是控制是否向特定访客提出挑战的因素


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

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

IP信誉是根据外部公共IP信息以及来自和的内部威胁情报计算的


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

是一个优化的Selenium Chromedriver修补程序,它不会触发反机器人服务,如蒸馏网络/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')
    

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

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

tl;博士
您可以在标题为的视频中找到详细的端到端流程。

当然有几种可能。其中之一就是使用“真实模拟浏览器”解析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();

}
JBrowserDriver JBrowserDriver=null;
公共JBrowserDriver getDriver(布尔无头){
如果(jBrowserDriver==null){
info(“JBrowser为null,正在初始化”);
jBrowserDriver=新的jBrowserDriver(Settings.builder()
.时区(时区:欧洲和柏林)
.ssl(“兼容”)
.cache(true)
.javascript(true)
.无头(无头)
.userAgent(userAgent.CHROME)
.logTrace(真)
.loggerLevel(Level.ALL)
.build());
}
返回jBrowserDriver;
}
私有void testFunction(){
// .. 
jDriver.get(“https://cloudflare.site");
driverCookies=jDriver.manage().getCookies();
HashMap cookieMap=新HashMap();
forEach(cookie->cookieMap.put(cookie.getName(),cookie.getValue());
Document Document=Jsoup.connect(requestPage).cookies(cookieMap.get();
}
我不对绕过cloud flare造成的任何损害负责,但只要人类能够绕过它,使用模拟客户端就始终可以做到这一点

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

Cloudflare还会检查(不确定)您的客户端是否正在请求css和javascripts等资产


您可能还需要使用假客户端请求它们。

如果安全检查很容易通过编程绕过,那么罪犯等是否可能会选择使用相同的技术?不仅仅是通过编程方式,但也有真正的人控制服务器。这对其他人的网站没有帮助…问题是如何为他们自己的服务器绕过它。