Security 是否有任何可能的方法绕过cloudflare安全检查?
我们都知道,有时候cloudflare喜欢检查他们的客户访客,以确保访客不是真人。安全检查要求我们通过Google Recaptcha。我想问的是,在使用我们自己的服务器时(即使使用远程服务器,自己回答验证码等),是否可以传递这些信息?如何传递这些信息?对于您自己,是的,您可以 您可以为IP地址创建一个安全级别,并将安全级别设置为“基本关闭” 是控制是否向特定访客提出挑战的因素Security 是否有任何可能的方法绕过cloudflare安全检查?,security,server,recaptcha,captcha,cloudflare,Security,Server,Recaptcha,Captcha,Cloudflare,我们都知道,有时候cloudflare喜欢检查他们的客户访客,以确保访客不是真人。安全检查要求我们通过Google Recaptcha。我想问的是,在使用我们自己的服务器时(即使使用远程服务器,自己回答验证码等),是否可以传递这些信息?如何传递这些信息?对于您自己,是的,您可以 您可以为IP地址创建一个安全级别,并将安全级别设置为“基本关闭” 是控制是否向特定访客提出挑战的因素 通过禁用IP地址的安全级别,您可以在自己的站点上有效绕过此保护。当您访问受cloudflare保护的站点时,它将包含一
通过禁用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等资产
您可能还需要使用假客户端请求它们。如果安全检查很容易通过编程绕过,那么罪犯等是否可能会选择使用相同的技术?不仅仅是通过编程方式,但也有真正的人控制服务器。这对其他人的网站没有帮助…问题是如何为他们自己的服务器绕过它。