实现cookie跨域共享的两种方式
目录
- 跨域概念
- 为何限制跨域?
- 如何安全跨域?(如何实现跨域主要参考这里)
- 如何实现cookie跨域共享?
- cookie的概念
- cookie的特性
- 跨多域共享cookie( a.com和b.com共享 )
跨域概念
在域a下通过 ajax 的方式访问域b下的资源。
域相同满足的条件:域名相同(子域名不同视为不同),端口号相同
为何限制跨域?
请了解跨站脚本攻击(XSS)
如何安全跨域?(如何实现跨域主要参考这里)
在XMLHttpRequest v2标准下,提出了CORS(Cross Origin Resourse-Sharing)的模型,试图提供安全方便的跨域读写资源。目前主流浏览器均支持CORS。(IE10+)
详细参见:http://www.ruanyifeng.com/blog/2016/04/cors.html
如何实现cookie跨域共享?
cookie的概念
由于http请求的无状态,需要在每次交互时通过cookie传递服务器在浏览器中存放的用户信息进而标识用户。
cookie的特性
- 由服务器端设置
- 包含key,value,domain,path,expireTime等信息(domain,path指定了在访问哪些域的哪些路径下会携带cookie信息)
- 服务器端设置cookie时,domain只可以指定自身或者父域,比如sub.a.com只可以指定domain为:sub.a.com或者a.com,而不可以指定sub1.a.com或者subchild.sub.a.com
- 在显示指定了cookie域时,访问自身域或者子域时,都会携带cookie,所以,很容易实现当前域及子域的cookie共享。
跨多域共享cookie( a.com和b.com共享 )
方式1:通过隐藏iframe的方式
step1. 用户在a.com登录,登录成功后设置cookiestep2. 登录成功后,浏览器端通过脚本动态生成iframe,通过iframe请求a.com/setCookiestep3. a.com发出重定向请求(http://b.com?cookie1=1&cookie2=2)step4. b.com接受到上面的请求,并设置b.com下的cookie写回浏览器step5. 完成
方式2:通过setCookie的方式
step1. 用户在a.com登录,登录成功后设置cookiestep2. 登录成功后,通过脚本读取a.com下的cookie,然后通过ajax跨域请求http://b.com?cookie1=1&cookie2=2step3. b.com接受到上面的请求,并设置b.com下的cookie写回浏览器step4. 完成
方式2相较于方式1,存在无法访问httponly类型的cookie的问题。
通过共享了cookie的方式,在访问b.com时,会携带对应域下的cookie信息,从而达到共享的目的。
第二种方式需要服务器端配置跨域(并且开启允许跨域发送cookie)。
实现cookie跨域共享的两种方式相关推荐
- springboot 添加允许跨域_springboot设置cors跨域请求的两种方式
1.第一种: public class CorsFilter extends OncePerRequestFilter { static final String ORIGIN = "Ori ...
- Ajax跨域问题的两种解决方法
Ajax跨域问题的两种解决方法 参考文章: (1)Ajax跨域问题的两种解决方法 (2)https://www.cnblogs.com/pandang/p/5341250.html 备忘一下.
- vue 使用axios 出现跨域请求的两种解决方法
vue 使用axios 出现跨域请求的两种解决方法 参考文章: (1)vue 使用axios 出现跨域请求的两种解决方法 (2)https://www.cnblogs.com/wangshengli5 ...
- 前端跨域通信的几种方式
前言 前端通信类的问题,主要包括以下内容: 1.什么是同源策略及限制 同源策略是一个概念,就一句话.有什么限制,就三句话.能说出来即可. 2.前后端如何通信 如果你不准备,估计也就只能说出ajax. ...
- 跨域资源共享的10种方式(转)
同源策略 在客户端编程语言中,如JavaScript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚本 ...
- 跨域资源共享的10种方式
同源策略 在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚本 ...
- AJAX异步请求解决跨域问题的三种方式
一 什么是跨域 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说We ...
- cookie跨域共享的实现方案
由于工作需要,花费了较多的时间处理跨域的问题,未避免遗忘,特此记录. 1.跨域的场景: 第一种:协议不同: 第二种: 域名不同: 第三种:端口不同; 2.跨域的关键点: 首先,跨域(CORS)需要浏览 ...
- Chrome 浏览器 Cookie 跨域共享与升级问题
Chrome 51 版本开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪.SameSite 可以设置三个值(Strict.Lax.None). 详见阮 ...
最新文章
- (转)使用Spring配置文件实现事务管理
- 编译自己的emacs
- (转)JS正则表达式元字符
- .net运行项目的几种形式
- optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇
- QT线程使用收集示例
- ubuntu12.04 java配置_Ubuntu 12.04 中安装和配置 Java JDK
- 简谈ubuntu之DIY发行版
- for循环中++i 和 i++ 的区别
- navicat远程连接mysql,2003 can't connect to mysql server on 10038
- linux如何修改telnet密码,如何修改用户SSH\telnet登陆linux时候显示的欢迎信息
- ai人工智能_我的人工智能周:第5部分
- zebradesginer zpl代码_斑马ZebraDesigner免费标签编辑软件
- Android service进程保护
- CSS设置字体为微软雅黑 且 解决用户设备上没有该字体的问题
- 扒一扒“WEBP格式”的图片
- JavaScript音频编辑
- Javascript-放大镜实现原理分析
- Linux用户家目录与根目录
- 为什么现在的智能手机,都被设计成不可更换电池?