深度解析

reCAPTCHA Cookie 要求:设置内容及其重要性

reCAPTCHA 读取和写入 cookie 来评估风险。具有新 Google 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年
曲奇饼 领域 目的 寿命
_GRECAPTCHA .google.com / .recaptcha.net reCAPTCHA 会话跟踪 会议
rc::a 本地存储 风险分析数据 执着的
rc::b 本地存储 时间戳数据 会议
rc::c 本地存储 挑战特定数据 会议
rc::d-<id> 本地存储 每个小部件的数据 会议

托管 reCAPTCHA 的站点还可能使用 cookie 进行会话和 CSRF 跟踪:

饼干类型 例子 关联
会话ID PHPSESSIDsession_id 将验证码解决与用户会话联系起来
CSRF代币 csrf_token_token 需要提交表格
自定义追踪 特定地点 可能会影响验证码触发

Google 使用 cookie 作为其风险评估中的众多信号之一:

Cookie 状态 挑战难度 为什么
已登录谷歌帐户 最低 强烈的身份信号
存在 Google cookie(未登录) 低-中 显示正常浏览历史记录
全新浏览器,无 Google cookie 中-高 没有评估风险的历史
Cookie 被阻止或剥离 高的 可疑——普通浏览器有cookie
隐身/私人模式 高的 没有持久的身份

reCAPTCHA 的风险引擎对 cookie 的权重很大:

  1. 最好的情况: 浏览器具有来自登录的 Google 会话的 SIDHSIDNID cookie → 通常仅通过单击复选框来传递
  2. 好案例: 浏览器具有 NID1P_JAR,从正常浏览 → 更容易进行图像挑战或复选框通过
  3. 最坏情况: 没有 Google 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进行解决。

reCAPTCHA 从 google.com 加载到 iframe 中。现代浏览器执行严格的 cookie 策略:

浏览器政策 对 reCAPTCHA 的影响
SameSite=Lax(默认) 默认情况下,Google cookie 不会在 reCAPTCHA iframe 中发送
第三方cookie拦截 reCAPTCHA 回退到 recaptcha.net 或第一方模式
ITP(Safari) 谷歌cookies过期更快,更难的挑战更频繁

谷歌的缓解措施

Google 通过以下方式解决第三方 Cookie 限制:

  • 使用 recaptcha.net 作为替代域
  • 使用 localStoragerc::* 条目)作为客户端状态
  • 为企业客户使用第一方脚本加载选项

本地存储条目

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 使用自己的基础设施独立解决 reCAPTCHA。您可以选择传递 cookie 以获取其他上下文,但这不是必需的。

我应该使用QA 测试模式进行验证码自动化吗?

不会。QA 测试模式会清除所有 cookie 和 localStorage,使 reCAPTCHA 挑战变得更加困难。在使用浏览器自动化时,使用持久的浏览器配置文件可以更轻松地应对挑战。

是的。 Google 的 NID cookie 的有效期约为 6 个月,而 1P_JAR 的有效期仅为 1 个月左右。定期使用浏览器配置文件可以使 cookie 保持新鲜。

相关文章

下一步

提高您的 reCAPTCHA 解决率 —获取您的 CaptchaAI API 密钥并在您的自动化工作流程中正确管理 cookie。

该文章已禁用评论。