在许多情况下,Cloudflare Turnstile会妨碍无障碍访问,使用户感到沮丧,限制对公开信息的访问,使应用程序和网站的测试变得困难。使用 Cloudflare Turnstile 解算器可自动绕过这些障碍。
Cloudflare Turnstile 演示
本页介绍如何显示 Cloudflare Turnstile 以及 Cloudflare Turnstile 验证的工作原理。 您还可以在示例页面查看 Cloudflare Challenge 如何运作。
如何破解Cloudflare Turnstile
在浏览器中打开开发人员控制台,找到包含
data-sitekey
属性的元素。<div class="cf-turnstile" data-sitekey="0x4AAAAAAAVrOwQWPlm3Bnr5"></div>
发送
sitekey
和pageurl
至我们的API.使用SDK(推荐):
PHP
$result = $solver->turnstile([ 'sitekey' => '0x4AAAAAAAVrOwQWPlm3Bnr5', 'url' => 'https://2captcha.com/demo/cloudflare-turnstile', ]);
Python
result = solver.turnstile(sitekey='0x4AAAAAAAVrOwQWPlm3Bnr5', url='https://2captcha.com/demo/cloudflare-turnstile')
Ruby
# https://github.com/2captcha/2captcha-ruby require 'api_2captcha' client = Api2Captcha.new("YOUR_API_KEY") result = client.turnstile({ sitekey: '0x1AAAAAAAAkg0s2VIOD34y5', pageurl: 'http://mysite.com/' })
等待结果,结果可能如下所示:
0.WoGeDojxQzHCCk023JRjfxv23olYh37jFdvPrcqmNeQ7PbSYIEuiBTK2SR_GdjfMitYEC23Gm7Vt93U1CPcI6aIFEhG-ffe1i9e6tIfIlYCFtb7OMxTB4tKCyTdpiaA.SP5YT77nuMNdOhZlvoBWAQ.da6448d22df7dd92f56a9fcf6d7138e5ee712bcf7d00c281f419b3bc091cbe64
手动操作:
使用以下参数向 https://2captcha.com/in.php 提交POST请求:
{ "key": "YOUR_API_KEY", "method": "turnstile", "sitekey": "0x4AAAAAAAVrOwQWPlm3Bnr5", "pageurl": "https://2captcha.com/demo/cloudflare-turnstile", "json": 1 }
如果一切正常,服务器将返回您的captcha ID:
{ "status": 1, "request": "2122988149" }
15-20秒后发送GET请求以获取结果:
GET https://2captcha.com/res.php?key=YOUR_API_KEY&action=get&id=2122988149&json=1
如果captcha已破解,服务器将响应答案令牌:
{ "status": 1, "request": "0.WoGeDojxQzHCCk023JRjfxv23olYh37jFdvPrcqmNeQ7PbSYIEuiBTK2SR_GdjfMitYEC23Gm7Vt93U1CPcI6aIFEhG-ffe1i9e6tIfIlYCFtb7OMxTB4tKCyTdpiaA.SP5YT77nuMNdOhZlvoBWAQ.da6448d22df7dd92f56a9fcf6d7138e5ee712bcf7d00c281f419b3bc091cbe64" }
如果captcha未破解,服务器将返回
CAPCHA_NOT_READY
代码。在5秒内重复您的请求。如果出现问题,服务器将返回错误代码。
使用与目标网站交互中返回的令牌。
通常,令牌通过包含name="cf-turnstile-response"
的输入发送,如果启用了reCAPTCHA兼容模式,也可以通过包含name="g-recaptcha-response"
的输入发送。此外,令牌可以由turnstile.render
或data-callback
属性中定义的回调函数进行处理。在此演示页面中,我们使用的输入可以这样修改:
document.querySelector('[name="cf-turnstile-response"]').value = 'TOKEN';