背景

账号体系是每款互联网产品的“标配”,58集团拥有多条产品线多种账号体系,有先期孵化(一直都是58账号体系)也有后期收购(非58账号体系),情况多种多样较为复杂。而不同账号体系不同产品线都需有相应的团队分别进行开发维护,造成资源配置浪费,同时账号功能系统及安全体系风控能力参差不齐。

云账号整合账号相关的基础能力和安全能力并扩展为中台通用能力,对外提供统一的接入SDK,便于各账号体系快速复用,同时数据可托管至云账号平台,保证各账号体系数据的独立性,解决多套账号系统重复建设的问题,提供了统一的安全保障,进而达到提效的目的。

下图为云账号平台的整体架构图

云账号平台对外提供的接入能力统一为SDK的形式,即在业务方的各端直接调用登录SDK,即可完成登录相关的操作。

而对于账号系统比较特殊的是登录令牌,令牌在各端的实现方案也不尽相同。

这些接入方式中APP端和小程序端基本保持一致,令牌由客户端托管;PC端和M端的令牌基于Cookie的方案。

由于PC/M端的使用形式是在浏览器中,接入方和SDK 的主域名不一定相同,那么接入的过程中就会存在跨域的问题,下面是云账号平台在跨域问题中提出的一些解决方案。

什么是跨域?

首先我们先说下什么是跨域,说跨域一定会先说到URL的组成

协议 + 域名 + 端口号 + 资源地址

以58的passport为例:

https://passport.58.com:8080/ticket

通俗的讲:只要协议,域名(子域名/主域名),端口号这三项组成部分中有一项不同,就可以认为是不同的域,不同的域之间互相访问资源,就被称之为跨域。即跨域是指一个域下的文档或脚本试图去请求另一个域下的资源。

什么是同源策略?

同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。同源策略是浏览器的行为,是为了保护本地数据不被JavaScript代码获取回来的数据污染。

云账号平台跨域实践

云平台提供的SDK在业务方使用时需要满足以下几个需求:

① 云平台下的主票据需要写入到passport.58.com的cookie里

② 接入方的业务票据需要写入到业务方主域名的cookie里

③ 完成登录操作后,JS需要回调通知接入方。

大致过程如下图:

•Jsonp跨域+接入方式代理地址

基于JSONP的跨域,要求云账号平台提供的数据接口基于get请求,返回的数据为Jsonp的格式,大致流程如下:

① SDK在接收到操作成功的数据时,直接访问接入方的代理地址

② 接入方的代理地址将cookie种到接入方的主域名中

③ 前端回调接入方完成此次跨域操作。

•Iframe跨域 + script脚本 + 接入方代理地址

此方案建立在数据接口为post请求的基础上,主要利用iframe加载其他域下的请求,设置document.domain达到相互通信,并利用代理地址生成script脚本方式种cookie及回调。

大致流程如下:

① 通过iframe发起post请求到服务端

② 服务端生成代理数据(script脚本、Cookie信息),302到接入方的代理地址

③ 代理地址执行种cookie及返回script脚本给客户端

④ 客户端执行script脚本完成回调

返回的script脚本回调信息大致如下:

E站账号cookie分享_58云账号跨域实践总结相关推荐

  1. 【推荐】如何使用好阿里云的网络安全隔离?深入分享阿里云ECS安全组实践经验...

    近期针对安全的话题非常火爆.特别邀请阿里云专家撰写一组文章,深入分享阿里云ECS安全组实践经验. 阿里云的ECS有经典网络和专有网络(VPC)两种网络类型.经典网络基于阿里云基础网络,通过安全组(类似 ...

  2. 解决阿里云OSS跨域问题

    解决阿里云OSS跨域问题 现象 本人项目中对阿里云图片请求进行了两次,第一次通过img标签进行,第二次通过异步加载获取.第一次请求到图片,浏览器会进行缓存,随后再进行异步请求,保存跨域失效. 错误信息 ...

  3. 阿里云OSS跨域报错:Access to XMLHttpRequest at ‘...‘ ... blocked by CORS policy: No ‘Access-Control-Allow

    错误标签:阿里云OSS, 跨域请求, No 'Access-Control-Allow-Origin' 浏览器具体报错内容: Access to XMLHttpRequest at 'https:// ...

  4. video 视频截图 云储存 跨域引用

    <video poster="" src="" crossOrigin="anonymous" width="100%&qu ...

  5. E站账号cookie分享_产品经理必懂知识点—cookie和session

    作为一个产品经理,如果不了解cookie和session很难设计好产品,尤其对于网站产品经理而言,cookie和session是一个必须要懂的知识点.如果在中大型企业做产品经理,这个cookie和se ...

  6. E站账号cookie分享_关于亚马逊账买手账号的分类

    最近不少新手商家咨询我关于亚马逊买手账号的分类和区别 大飞一听就知道应该是开始涉及到亚马逊测评了,对测评没必要讳莫如深,在亚马逊他就是一个正规的职业,甚至有专门的测评师,但是现在测评行业水很深,各种账 ...

  7. E站账号cookie分享_不用输入密码无风险?扫描二维码登录QQ账号也不安全!

    很多人都有这样一个误区 觉得QQ二维码登录.快速登录不会被盗号,一直以来我也是这么认为的. 但是0202年了,因为个人账号很容易找回,盗号者并不能像十几年前那样直接将qq占为己有,一般都是利用冻结账号 ...

  8. 阿里云视频点播本地调试跨域问题,阿里云视频点播跨域问题

    点播控制台>域名管理>缓存配置>自定义HTTP响应头

  9. 华为云obs跨域问题

    一.配置跨域 String endPoint = "https://your-endpoint"; String ak = "*** Provide your Acces ...

最新文章

  1. 美国正在衰落的24个行业:“猝不及防”还是“温水煮青蛙”?
  2. Php如何发出请求,PHP中如何发送HTTP请求?
  3. 曙光高性能服务器,曙光高性能进入世界前十_中科曙光服务器_服务器知识学堂-中关村在线...
  4. VTK修炼之道83:Pipeline管线执行模型
  5. MongoDB 的 upsert
  6. altium如何制作mark点_如何选择一家优质的网站制作公司,看这2点
  7. C# 特性 Attribute
  8. bind() c语言,c/c++ 标准库 bind 函数详解
  9. 计算机组成部分有cpu吗,计算机组成原理笔记——处理器(1)[未完]
  10. 五分钟学会python_关于五分钟学Python系列视频
  11. thinkphp-volist4
  12. java addgap,java GroupLayout格局
  13. 直播源批量生成小工具.c
  14. Stream.sorted
  15. 渗透测试 QA 收集
  16. 恢复计算机注册表命令,恢复电脑注册表的方法
  17. 最公正海贼王实力排行TOP50!
  18. iphone5刷android,iphone5s怎么刷机 简单几招搞定iOS【图文教程】
  19. 如何使用思维导图做计划?这样绘制思维导图的方法你使用过吗?
  20. NOI 1797:金银岛(C++)

热门文章

  1. 前端面试之那些稀奇古怪的问题
  2. Hive 使用问题集锦
  3. WDK10+VS2015 驱动环境搭建
  4. iOS 9.0系统策略更新
  5. HDU 3420 Bus Fair [补]
  6. python学习之装饰器---转
  7. Spring.NET企业架构实践之 Nhibernate + WCF + ASP.NET MVC + NVelocity 对PetShop4.0重构(三)——持久层...
  8. [转载] Java基础之构造方法(函数)何时被调用
  9. [转载] Java中如何在方法中return返回多个值
  10. Web前端-JavaScript基础教程下