reCAPTCHA 读取和写入 cookie 来评估风险。具有新 Google cookie 的浏览器比完全没有 cookie 的浏览器面临更容易的挑战。了解 reCAPTCHA 使用哪些 cookie 可帮助您维护会话状态并改善自动化工作流程中的解决结果。
Cookie reCAPTCHA 用途
谷歌域 Cookie
这些在 .google.com 上设置并由 reCAPTCHA iframe 读取:
| 曲奇饼 | 领域 | 目的 | 寿命 |
|---|---|---|---|
NID |
.google.com |
Google 偏好设置和唯一 ID | 6个月 |
SID / HSID / SSID |
.google.com |
Google 帐户会话(如果已登录) | 2年 |
APISID / SAPISID |
.google.com |
谷歌API认证 | 2年 |
1P_JAR |
.google.com |
谷歌广告个性化 | 1个月 |
CONSENT |
.google.com |
Cookie 同意偏好 | 17年 |
reCAPTCHA 特定 Cookie
| 曲奇饼 | 领域 | 目的 | 寿命 |
|---|---|---|---|
_GRECAPTCHA |
.google.com / .recaptcha.net |
reCAPTCHA 会话跟踪 | 会议 |
rc::a |
本地存储 | 风险分析数据 | 执着的 |
rc::b |
本地存储 | 时间戳数据 | 会议 |
rc::c |
本地存储 | 挑战特定数据 | 会议 |
rc::d-<id> |
本地存储 | 每个小部件的数据 | 会议 |
目标站点 Cookie
托管 reCAPTCHA 的站点还可能使用 cookie 进行会话和 CSRF 跟踪:
| 饼干类型 | 例子 | 关联 |
|---|---|---|
| 会话ID | PHPSESSID、session_id |
将验证码解决与用户会话联系起来 |
| CSRF代币 | csrf_token、_token |
需要提交表格 |
| 自定义追踪 | 特定地点 | 可能会影响验证码触发 |
Cookie 如何影响挑战难度
Google 使用 cookie 作为其风险评估中的众多信号之一:
| Cookie 状态 | 挑战难度 | 为什么 |
|---|---|---|
| 已登录谷歌帐户 | 最低 | 强烈的身份信号 |
| 存在 Google cookie(未登录) | 低-中 | 显示正常浏览历史记录 |
| 全新浏览器,无 Google cookie | 中-高 | 没有评估风险的历史 |
| Cookie 被阻止或剥离 | 高的 | 可疑——普通浏览器有cookie |
| 隐身/私人模式 | 高的 | 没有持久的身份 |
Cookie 分数效应
reCAPTCHA 的风险引擎对 cookie 的权重很大:
- 最好的情况: 浏览器具有来自登录的 Google 会话的
SID、HSID、NIDcookie → 通常仅通过单击复选框来传递 - 好案例: 浏览器具有
NID和1P_JAR,从正常浏览 → 更容易进行图像挑战或复选框通过 - 最坏情况: 没有 Google cookie,新会话 → 多轮图像挑战
自动化中的 Cookie 处理
使用浏览器自动化 (Playwright/Puppeteer)
浏览器自动化自然会处理 cookie。要在会话之间保留它们:
# Save cookies after session
cookies = page.context.cookies()
import json
with open("cookies.json", "w") as f:
json.dump(cookies, f)
# Restore cookies in next session
with open("cookies.json") as f:
cookies = json.load(f)
page.context.add_cookies(cookies)
使用 CaptchaAI(仅 API 求解)
当在没有浏览器的情况下使用 CaptchaAI 时,cookie 不会直接影响求解 — CaptchaAI 管理自己的求解环境。但是,如果目标站点需要 cookie 来保证会话连续性,您可能需要传递 cookie:
POST https://ocr.captchaai.com/in.php
key=YOUR_API_KEY
&method=userrecaptcha
&googlekey=SITE_KEY
&pageurl=https://staging.example.com/qa-login
&cookies=NID=12345;1P_JAR=2026-04-04-12
cookies参数是可选的,将cookie上下文发送到CaptchaAI进行解决。
跨域 Cookie 限制
reCAPTCHA 从 google.com 加载到 iframe 中。现代浏览器执行严格的 cookie 策略:
| 浏览器政策 | 对 reCAPTCHA 的影响 |
|---|---|
| SameSite=Lax(默认) | 默认情况下,Google cookie 不会在 reCAPTCHA iframe 中发送 |
| 第三方cookie拦截 | reCAPTCHA 回退到 recaptcha.net 或第一方模式 |
| ITP(Safari) | 谷歌cookies过期更快,更难的挑战更频繁 |
谷歌的缓解措施
Google 通过以下方式解决第三方 Cookie 限制:
- 使用
recaptcha.net作为替代域 - 使用
localStorage(rc::*条目)作为客户端状态 - 为企业客户使用第一方脚本加载选项
本地存储条目
reCAPTCHA 将风险评估数据存储在 localStorage 中的 rc:: 前缀键下:
| 按键图案 | 数据 |
|---|---|
rc::a |
编码风险分析有效负载 |
rc::b |
上次挑战的时间戳 |
rc::c |
当前挑战赛数据 |
rc::d-<hash> |
每个小部件实例数据 |
这些条目有助于 reCAPTCHA 在页面加载时维护状态,而无需依赖第三方 cookie。在自动化中,保留 localStorage 可以降低挑战难度:
# Save localStorage
storage = page.evaluate("() => JSON.stringify(localStorage)")
with open("localstorage.json", "w") as f:
f.write(storage)
# Restore localStorage
with open("localstorage.json") as f:
storage = f.read()
page.evaluate(f"Object.entries(JSON.parse('{storage}')).forEach(([k,v]) => localStorage.setItem(k,v))")
最佳实践
| 实践 | 益处 |
|---|---|
| 在运行之间保留浏览器配置文件 | 构建浏览历史记录 → 更轻松的挑战 |
| 不要在任务之间清除 cookie | 保持 Google 风险评估的连续性 |
当google.com被阻止时使用recaptcha.net |
相同的服务,不同的域 |
保留 localStorage rc:: 条目 |
维护 reCAPTCHA 会话状态 |
| 偶尔访问 Google 产品 | 刷新cookie有效性 |
故障排除
| 问题 | 原因 | 处理方式 |
|---|---|---|
| 总是面临严峻的形象挑战 | 没有cookies/新鲜的个人资料 | 使用 Google cookie 建立浏览器配置文件 |
| reCAPTCHA 显示“需要 cookie”错误 | 第三方 cookie 被阻止 | 为 google.com 启用 cookie 或使用 recaptcha.net |
| 令牌有效但会话不匹配 | 站点 cookie (PHPSESSID) 未维护 |
保存和恢复所有 cookie,而不仅仅是 Google cookie |
| 挑战循环——不断要求更多图像 | localStorage 在尝试之间被清除 | 保留 rc::* localStorage 条目 |
常问问题
CaptchaAI 是否需要浏览器的 cookie 来解决 reCAPTCHA 问题?
不会。CaptchaAI 使用自己的基础设施独立解决 reCAPTCHA。您可以选择传递 cookie 以获取其他上下文,但这不是必需的。
我应该使用QA 测试模式进行验证码自动化吗?
不会。QA 测试模式会清除所有 cookie 和 localStorage,使 reCAPTCHA 挑战变得更加困难。在使用浏览器自动化时,使用持久的浏览器配置文件可以更轻松地应对挑战。
Cookie 会过期并需要刷新吗?
是的。 Google 的 NID cookie 的有效期约为 6 个月,而 1P_JAR 的有效期仅为 1 个月左右。定期使用浏览器配置文件可以使 cookie 保持新鲜。
相关文章
- 如何使用Api解决Recaptcha V2回调
- Recaptcha V2 Turnstile同一站点处理
- Recaptcha V2回调机制
下一步
提高您的 reCAPTCHA 解决率 —获取您的 CaptchaAI API 密钥并在您的自动化工作流程中正确管理 cookie。