华为云成长中心接口为什么 Cookie 直调会 403:一次 SSO 链路逆向实录(2026-11-03)

举报
yd_289237331 发表于 2026/11/03 15:54:37 2026/11/03
【摘要】 把每日签到搬进定时脚本时遇到一个反直觉的现象:浏览器里明明是登录态,用同一份 Cookie 直调 devdata 接口却
把每日签到搬进定时脚本时遇到一个反直觉的现象:浏览器里明明是登录态,用同一份 Cookie 直调 devdata 接口却返回 not login。排查一圈才发现,devdata 的 API 域和登录态根本不在一个域上。 ## 三个域的分工 developer.huaweicloud.com 是门户,devdata.huaweicloud.com 是数据接口,auth.huaweicloud.com 是统一登录。门户域的 Cookie(masked_user 那批)只证明"门户认识你",devdata 每次收到请求时走的是自己的 CAS 校验:无会话就 302 到 auth 登录页,auth 侧有 SSO 会话(SSOTGC/SSOJTC)时自动签发 ST 票据回跳,票据兑换后 devdata 才有自己的会话。 ## 三个试错结论 一是 validateUser 并不是万能换票口:空表单提交在已登录状态下会返回 427(设备已登录语义),它只在登录页 JS 的完整上下文里可用。二是票据兑换路径有讲究,devdata 对外广告的 service 是根路径,但网关上根路径没有注册路由,票落地就是 no Route matched。三是网关侧对非浏览器客户端有指纹判定,同样的链路换掉 TLS 指纹就走不通。 ## 最终可行解 让真实浏览器自己完成这套 SSO:注入 Cookie 打开业务页,页面 JS 按它自己的节奏完成登录态建立,之后所有接口调用都在页面上下文内 fetch,天然带上正确的 Cookie、Referer 和 csrf 头。无头浏览器环境里这套流程完全可复现,单次全程十几秒。 结论:面对多域 SSO 站点,逆向接口要先逆向"会话在哪个域建立",而不是急着抄接口路径。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。