CyberSiARA
CyberSiARA 是 CyberSiARA(产品名 SiARA Shield) 的无感行为判定为主,判可疑时才升级为一道视觉挑战。绝大多数时候什么都不做 —— 它在后台读鼠标移动、打字节奏和交互模式,厂商的营销口径就是「No CAPTCHAs, no cookies, no friction」。只有会话被判可疑时才弹出一道视觉题,厂商称之为 Trans-Saccadic Memory(TSM)视觉验证,宣称专门设计成抗 OCR、抗 AI 识别。
接口规格
| 项目 | 值 |
|---|---|
| type | cybersiara |
| 必填参数 | website_urlmaster_url_id |
| 可选参数 | user_agent |
| 返回 | 一个 token 字符串(solution.token) |
| 怎么用这个解 | 填回目标站表单的 CyberSiARA 响应字段 |
| 价格 | $2.22 / 1K 次 —— 按成功计费,没解出来退款 |
| 厂商文档 | CyberSiARA(产品名 SiARA Shield) 官方文档 |
参数去页面哪里取
下面全部是可以直接照做的定位方法 —— DOM 属性名、JS 全局变量名、script 上的 query 参数。
要两个:website_url 和 master_url_id。后者是唯一需要你去页面上找的东西,三条互相印证的取法(按可靠性排序):
- 抄 `InitCaptcha()` 的实参 —— 页面内联脚本里有一段形如
var captchaKey = "………"; … InitCaptcha(captchaKey);。传进InitCaptcha()的那个字符串就是 MasterUrlId,典型是 32 位大小写字母加数字。最直接的一处。 - 看 Network 面板里那个 `CyberSiara/GetCyberSiara` 的 POST —— 请求体是 JSON,第一个键就是
MasterUrlId,同一份 body 里还有DeviceName(就是 UA)、RequestUrl、BrowserIdentity、VisiterId、RequestID等。DevTools 里直接按MasterUrlId过滤即可。 - 认脚本域名 —— 组件资源从
embed.mycybersiara.com下的CaptchaFormate/CaptchaResources.js与同目录.css加载。看到这个域名基本就能确认是它,同时也就定位到了第 1 条那段内联脚本的位置。
配套的 DOM 特征,用来确认你找对了元素:
- 挂载容器 <div class="SiaraShield Cyber_Cap">(class 同时含 SiaraShield 和 Cyber_Cap)
- 回填位 <input type="hidden" name="CyberSiaraToken" id="CyberSiaraToken"> —— 我们交付的 token 就填这里
- 全局对象 window.InitCaptcha 与 window.CyberSiaraForm(后者带 setupForms() / syncToken() 方法)
⚠ 容易取错的一点:MasterUrlId 是站点级的公开标识、不随每次挑战变化,可以缓存;而同一份请求体里的 RequestId / VisiterId / BrowserIdentity 是每次现生成的,别把它们当成 MasterUrlId 抄下来。
⚠ 组件常被设成懒加载:页面脚本里若有 captchaLazy = true,不滚动到表单附近脚本根本不执行,DevTools 里也就看不到那个 GetCyberSiara 请求。先让表单进视口再抓。
调用示例
一个端点解全部验证码类型 —— 换一种验证码只改 type 这一个字段。
curl -X POST https://api.everyinfra.com/api/v1/captcha \ -H "Authorization: Bearer omg_你的KEY" \ -H "Content-Type: application/json" \ -d '{"type":"cybersiara","website_url":"<website_url>","master_url_id":"<master_url_id>"}'
{ "solution": { "token": "…" }, "billing": { "charged": true, "credits": 160 }}
怎么确认目标站用的就是它
两层。第一层被动采集行为信号(鼠标轨迹、打字模式、交互行为)做判定;第二层在可疑时下发 TSM 视觉挑战。客户端由 `InitCaptcha(MasterUrlId)` 引导,向厂商的 `CyberSiara/GetCyberSiara` 接口 POST 一份 JSON,内含站点标识、User-Agent、页面 URL、浏览器指纹、访客 ID、屏幕宽高、插件数、点击耗时等;服务端回传挑战 HTML,通过后把结果写进页面的 CyberSiaraToken 隐藏域随表单提交。
容易搞混的
① 最实际的混淆是它自称不是验证码 —— 营销口径是「No CAPTCHAs」,页面上找不到任何写着 captcha 的品牌标识,只能靠 SiaraShield class 名、CyberSiaraToken 字段名和 embed.mycybersiara.com 域名来认。② 和同样走「无感行为判定 + 触发式挑战」路线的 PerimeterX / HUMAN Security 定位相似,但取参方式完全不同:那边要页面地址加你自己的出口代理,这边要 MasterUrlId、不需要你自带代理。③ 品牌名大小写写法混乱(CyberSiARA / CyberSiara / Cyber SiARA / SiARA Shield 都出现过),按品牌名搜资料要几种都试;按 embed.mycybersiara.com 或 MasterUrlId 搜更准。
常见部署场景
- 金融与金融科技(厂商自述的头号行业)
- 媒体与流媒体、游戏与娱乐
- SaaS 与技术平台、电商零售
- 旅游酒店、共享经济类市场平台
- 典型防护场景:账户接管、批量注册假账号、垃圾内容与滥用、爬虫、支付欺诈
- 站点文案通篇英式英语,欧洲市场为主;另有白标转售方案,所以可能在完全没听过的品牌名下遇到同一套组件
已知的坑
传上求解时用的 user_agent,并在后续请求里保持一致 —— 它的请求体本身就把 UA(字段名 DeviceName)当成判定输入之一
交付的是表单 token,不是 Cookie;填进 CyberSiaraToken 隐藏域随表单一起提交
懒加载配置下不滚动到表单就抓不到那个 GetCyberSiara 请求,容易误判成「页面上没有这个验证码」
MasterUrlId 是站点级常量可以缓存,但站点换域名或重新配置后会变,长期硬编码会静默失效
厂商把它定位成叠加层而非替代品(明说与防火墙、WAF、bot 管理并存),所以过了它不代表站点其他防护也过了
常见问题
CyberSiARA 要传哪些参数?
必填 website_url、master_url_id;可选 user_agent。请求里 type 传 cybersiara。
解出来的东西怎么用?
返回一个 token 字符串,取 solution.token。填回目标站表单的 CyberSiARA 响应字段
window.CyberSiaraForm 要去页面的哪里找?
重点找 window.CyberSiaraForm、window.InitCaptcha、BrowserIdentity。本页「参数去页面哪里取」一节写了全部位置与取法,含可直接粘进控制台的一行命令。
怎么确认目标站用的就是 CyberSiARA?
① 最实际的混淆是它自称不是验证码 —— 营销口径是「No CAPTCHAs」,页面上找不到任何写着 captcha 的品牌标识,只能靠 SiaraShield class 名、CyberSiaraToken 字段名和 embed.mycybersiara.com 域名来认。② 和同样走「无感行为判定 + 触发式挑战」路线的 PerimeterX / HUMAN Security 定位相似,但取参方式完全不同:那边要页面地址加你自己的出口代理,这边要 MasterUrlId、不需要你自带代理。③ 品牌名大小写写法混乱(CyberSiARA / CyberSiara / Cyber SiARA / SiARA Shield 都出现过),按品牌名搜资料要几种都试;按 embed.mycybersiara.com 或 MasterUrlId 搜更准。
有什么容易踩的坑?
传上求解时用的 user_agent,并在后续请求里保持一致 —— 它的请求体本身就把 UA(字段名 DeviceName)当成判定输入之一
多少钱一次,失败扣不扣?
$2.22 / 1K 次。按成功计费 —— 没解出来一律退款,所以失败不花钱。账单按次记,标价按每千次是为了让量级读得出来。