对于普通人来说,你只要看这一段就行了。
请注意,本文完成于 2020 年 4 月 10 日,hCaptcha 随时可能更新他们的使用政策,文中提到的方法随时都会可能失效!
1. 注册 hCaptcha 无障碍服务账号
点击 这个链接 进行注册。
不一定要用真实的邮箱,能收到邮件的临时邮箱就行;国家和地区根据你常用的 IP 进行选择就好了。点击「Submit」开始注册。
2. 去邮箱收件
去你的邮箱获取 hCaptcha 发来的邮件,这幅邮件应该长这样:
保存好这封邮件,这个按钮以后还用得到的。你也可以直接复制这个按钮的链接、将其添加到你的浏览器书签中。
需要注意的是大部分邮箱都会使用跳转页面和追踪链接,所以你要确保复制的是 hCaptcha 的链接,它应该长这样:
https://accounts.hcaptcha.com/verify_email/xxxxxxxx-xxxx-x4xx-xxxx-xxxxxxxxxxxx
(accounts.hcaptcha.com/verify_email/
打头,结尾是一串 v4 的 UUID)。
3. 获取 hCaptcha Cookie
点击按钮将会跳转到 hCaptcha 的设置页面:
点击「Set Cookie」按钮,等按钮下方出现一行字「Cookie set.」时就大功告成了!
现在你可以测试一下是不是生效了:试试访问 这个链接,当出现 hCaptcha 时,直接点击「I am human」左边的方框,是不是不用再选图片、直接就通过了?
是的,就这么简单!
当然,hCaptcha 的 Cookie 有效期只有 12 小时。还记得我之前说的么,把 hCaptcha 发给你的链接添加到书签!
如果你只是一个想在 hCaptcha 上省点事的人,那么你现在可以关掉这个页面了。
如果你点开这篇文章是为了学习如何干坏事的话,那么你来对地方了,接着读下去吧。
hCaptcha 的链接
还记得上文说过么,hCaptcha 通过邮件发送的链接的格式是这样的:
https://accounts.hcaptcha.com/verify_email/[v4 uuid]
邮件中的 URL 将会跳转到「Set Cookie」页面,那么随机生成的 UUID 呢?
const { v4: uuidv4 } = require("uuid");console.log('https://accounts.hcaptcha.com/verify_email/' + uuidv4());// "https://accounts.hcaptcha.com/verify_email/3cb9faea-2e45-4cb4-a4e1-d532ce53504e"
尝试访问以后跳转到的是 hCaptcha 面板的登陆页面,看来随机 UUID 是行不通的。
试试看 curl 会得到什么结果:
$ curl -v https://accounts.hcaptcha.com/verify_email/[redacted]
...< HTTP/1.1 302 FOUND...< Set-Cookie: __cfduid=[redacted]< Set-Cookie: INGRESSCOOKIE=[redacted]< Set-Cookie: hmt_id=[redacted]< Set-Cookie: session=[redacted]< Location: https://dashboard.hcaptcha.com/welcome_accessibility... $ curl -v https://accounts.hcaptcha.com/verify_email/3cb9faea-2e45-4cb4-a4e1-d532ce53504e
...< HTTP/1.1 302 FOUND...< Set-Cookie: __cfduid=[redacted]< Set-Cookie: INGRESSCOOKIE=[redacted]< Set-Cookie: hmt_id=[redacted]< Location: https://dashboard.hcaptcha.com/login...
所以,只有正确的 UUID 才能得到 session
这个 Cookie。值得注意的是,session
这个 Cookie 没有过期日期,即浏览器关闭以后这个 Cookie 就会被删除。
hCaptcha 的获取 Cookie 页面
打开我们的好伙伴——浏览器的开发者工具,并切换到 Network Tab,访问 hCaptcha 的获取 Cookie 页面。
可以注意到,点击「Set Cookie」会触发一个 GET
https://accounts.hcaptcha.com/accessibility/get_cookie:
啊哈!只需要一个带 session
Cookie 的 GET 请求,我们就直接拿到了 hc_accessibility
这个 Cookie,有效域是 .hcaptcha.com
,有效期是 12 小时。
对,你没有想错。不论是获取 session
还是 hc_accessibility
,全程只需要 curl 就可以完成!
Cloudflare Captcha
Cloudflare 的 Captcha 页面基本是依赖 JS 实现。首先 Cloudflare Captcha 页面会加载一段 JS:
https://site.at.cloudflare.example.com/cdn-cgi/scripts/hcaptcha.challenge.js
当 Solve Captcha 以后,Cloudflare 的这个 JS 会产生一个 POST 请求:
POST ?__cf_chl_captcha_tk__=GENERATED_TOKEN
GENERATED_TOKEN 根据 Captcha 的返回值和 inline 在 Captcha 页面的 ID 计算得到,其中 POST 的数据类型是 formdata
,包括如下字段:
r:用于统计的信息,经过加盐和 encode
cf_captcha_kind:Captcha 类型,hCaptcha 是
h
h-recaptcha-response:hCaptcha 的返回值
g-recaptcha-response:之前是 reCAPTCHA 的返回值,现在和 h-recaptcha-response 相同,应该是作为 reCAPTCHA 的向前兼容
Cloudflare 会给这个 POST 请求返回原始请求的内容,同时传递一个 cf_clearance
Cookie(有效期 24 小时),这个 Cookie 在接下来的 1000 个请求中都有效(Cloudflare 也会根据站长的设置在一定时间内要求访客再次进行验证)。
Cloudflare 对于使用 cf_clearance
的请求有如下几点要求:
cf_clearance
本身依然有效User-Agent 要一致
IP 要在同一个 C 段内(不要求同一个 IP)
只要满足上述三个需求,就可以使用 cf_clearance
通过 Cloudflare 了。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://www.hqyman.cn/post/11698.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~