跳至正文
中文
立即开始

验证码

验证码(CAPTCHA,即用于区分计算机与人类的全自动公开图灵测试)是一种用于区分真人与自动化程序的验证挑战或风险检查机制。

文章目录(8 个章节)

验证码的工作原理

网站或前置安全服务会判断请求是否有风险。判断依据可能包括 IP 信誉、请求时序、浏览器信号、Cookie 和交互模式。这是更广泛的机器人检测机制之一。

遇到可见验证码时,需要选择图片、输入文字或完成其他任务。隐形验证码可能在后台给出风险评分,只对部分请求显示验证题。验证通过后,通常会生成短期有效的令牌,网站会先核验该令牌,再接受相关操作。

常见验证码类型

  • **复选框:**要求确认操作来自真人,之后还可能弹出另一项验证。
  • **图片或文字:**要求找出匹配的物体或辨认变形字符。
  • **音频:**以语音播放字符,作为无障碍替代方式。
  • **隐形:**在后台评估各项信号,只对风险较高的请求发起验证。

现代系统通常还会结合浏览器指纹识别,而不只根据答案来判断。

使用代理时为什么会出现验证码

代理会改变网站看到的 IP 地址,但无法修正不一致的请求头、浏览器信号或行为。以下情况可能导致验证码出现得更频繁:

  • **请求到达得太快。**突发的大量请求可能触发限速或风险检查。
  • **IP 信誉较差。**共享地址可能被许多互不相关的用户使用。
  • **会话意外发生变化。**加载表单后、提交表单前切换出口 IP,可能改变风险判断所依据的上下文。
  • **客户端特征不完整。**未携带 Cookie、禁用 JavaScript 或请求头异常,都可能使请求不同于正常的浏览器流量。

解出验证题并不代表一定能访问。如果其他信号仍然可疑,网站仍可能拒绝请求。

如何妥善应对

  1. **暂停重复请求。**如果网站返回 429 请求过多,请采用退避策略。
  2. **在获授权流程中保持会话一致。**填写多步骤表单或完成一段会话时,应保留 Cookie,并使用同一个出口 IP。
  3. **检查客户端。**确认客户端能按网站预期处理 JavaScript、重定向和 Cookie。
  4. **采用获准的访问方式。**如有官方 API,应优先使用,并遵守网站条款和 robots.txt。

常见问题

为什么使用代理时会遇到验证码?

通常是因为网站认为该请求风险较高。代理的 IP 信誉可能是原因之一,但请求速度、Cookie、请求头和浏览器信号也会影响判断。

轮换代理能避免验证码吗?

不能。轮换可以把相互独立的请求分配到不同 IP,但过于频繁地更换地址可能中断会话,反而触发更多检查。

验证码和 403 错误是一回事吗?

不是。验证码是一道验证步骤,状态码为 200 的响应页面中也可能出现。403 Forbidden 响应表示作出响应的服务器或中间服务(如网站、CDN、防火墙或代理)已经理解该请求,但拒绝处理。

相关术语

查看全部术语