目录

  • 跨域概念
  • 为何限制跨域?
  • 如何安全跨域?(如何实现跨域主要参考这里)
  • 如何实现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的特性

  1. 由服务器端设置
  2. 包含key,value,domain,path,expireTime等信息(domain,path指定了在访问哪些域的哪些路径下会携带cookie信息)
  3. 服务器端设置cookie时,domain只可以指定自身或者父域,比如sub.a.com只可以指定domain为:sub.a.com或者a.com,而不可以指定sub1.a.com或者subchild.sub.a.com
  4. 在显示指定了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跨域共享的两种方式相关推荐

  1. springboot 添加允许跨域_springboot设置cors跨域请求的两种方式

    1.第一种: public class CorsFilter extends OncePerRequestFilter { static final String ORIGIN = "Ori ...

  2. Ajax跨域问题的两种解决方法

    Ajax跨域问题的两种解决方法 参考文章: (1)Ajax跨域问题的两种解决方法 (2)https://www.cnblogs.com/pandang/p/5341250.html 备忘一下.

  3. vue 使用axios 出现跨域请求的两种解决方法

    vue 使用axios 出现跨域请求的两种解决方法 参考文章: (1)vue 使用axios 出现跨域请求的两种解决方法 (2)https://www.cnblogs.com/wangshengli5 ...

  4. 前端跨域通信的几种方式

    前言 前端通信类的问题,主要包括以下内容: 1.什么是同源策略及限制 同源策略是一个概念,就一句话.有什么限制,就三句话.能说出来即可. 2.前后端如何通信 如果你不准备,估计也就只能说出ajax. ...

  5. 跨域资源共享的10种方式(转)

    同源策略 在客户端编程语言中,如JavaScript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚本 ...

  6. 跨域资源共享的10种方式

    同源策略 在客户端编程语言中,如javascript和ActionScript,同源策略是一个很重要的安全理念,它在保证数据的安全性方面有着重要的意义.同源策略规定跨域之间的脚本是隔离的,一个域的脚本 ...

  7. AJAX异步请求解决跨域问题的三种方式

    一 什么是跨域 出于浏览器的同源策略限制.同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说We ...

  8. cookie跨域共享的实现方案

    由于工作需要,花费了较多的时间处理跨域的问题,未避免遗忘,特此记录. 1.跨域的场景: 第一种:协议不同: 第二种: 域名不同: 第三种:端口不同; 2.跨域的关键点: 首先,跨域(CORS)需要浏览 ...

  9. Chrome 浏览器 Cookie 跨域共享与升级问题

    Chrome 51 版本开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪.SameSite 可以设置三个值(Strict.Lax.None). 详见阮 ...

最新文章

  1. (转)使用Spring配置文件实现事务管理
  2. 编译自己的emacs
  3. (转)JS正则表达式元字符
  4. .net运行项目的几种形式
  5. optee3.14.0 qemu_v8的环境搭建篇(ubuntu20.10)--终极篇
  6. QT线程使用收集示例
  7. ubuntu12.04 java配置_Ubuntu 12.04 中安装和配置 Java JDK
  8. 简谈ubuntu之DIY发行版
  9. for循环中++i 和 i++ 的区别
  10. navicat远程连接mysql,2003 can't connect to mysql server on 10038
  11. linux如何修改telnet密码,如何修改用户SSH\telnet登陆linux时候显示的欢迎信息
  12. ai人工智能_我的人工智能周:第5部分
  13. zebradesginer zpl代码_斑马ZebraDesigner免费标签编辑软件
  14. Android service进程保护
  15. CSS设置字体为微软雅黑 且 解决用户设备上没有该字体的问题
  16. 扒一扒“WEBP格式”的图片
  17. JavaScript音频编辑
  18. Javascript-放大镜实现原理分析
  19. Linux用户家目录与根目录
  20. 为什么现在的智能手机,都被设计成不可更换电池?

热门文章

  1. 溢信IP guard文档加密系统控制台看着正常客户端无加密图标问题解决
  2. stm8s 定时器1 延时_试了一下STM8S定时器TIM2的使用
  3. Spark源码之-CDH6下Spark2.4写Hive分区表异常
  4. python练习|递归
  5. libwebsocket 编译mini demo时遇到require lws_config
  6. 【统计】如何理解相关系数,自相关和偏自相关函数(PACF)?
  7. 答题APP开发解决方案
  8. 批量删除并更改yolo格式的标签类别
  9. shell脚本编写遇到的问题--循环
  10. 标准结构篇:5)热(散热)设计