SSO跨域读写Cookie
一、 单机模拟多域请求
- 配置本机host文件 C:\Windows\System32\drivers\etc\HOSTS 打开配置,最后处添加如下代码:
127.0.0.1 www.a.com (第一个域)
127.0.0.1 sub.a.com (第二个域)
127.0.0.1 www.b.com (第三个域)
二、利用JavaScript的Script标签来跨域写Cookie
① 跨域写Cookie
1.A域往B域写cookie<script type="text/javascript" src="http://www.b.com:8082/set_cookie?cname=token&cval=test123"></script>
2.B域读A域写cookie
http://www.b.com:8082/cookie_reader.jsp
三、P3P协议
① 协议概述
P3P协议代表浏览器跨域的第三方安全的隐私策略。 所谓的P3P协议,是指P3P是万维网联盟(W3C)公布的一项隐私保护推荐标准。
② 协议规则(三方隐私策略)
例如: A域(支持) –》》 写Cookie –》》B域(不支持) 这样写Cookie操作,叫做“第三方cookie”。
如果A域支持,而B域不支持,这样就无法正确获取cookie。
③ 协议配置
response.addHeader("P3P", "CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR");
注解:
由于浏览器各个版本不同,采用内核不同,配置支持第三方安全隐私策略不同。并不是配置P3P协议就一定支持,早期safari浏览器,是不允许设置P3P协议,设置也无效。
四、通过URL参数传递跨域写Cookie
① URL参数
http://www.a.com:8082/fg?from=http://www.b.com:8082/set_cookie
From参数指定A域往B域写cookie过程, set_cookie后台访问地址
② 读取cookie
http://www.b.com:8082/cookie_reader.jsp
五、跨域读Cookie
A域 --》》 写Cookie --》》B域
A域 --》》 读Cookie --》》B域
① 访问地址
http://www.a.com:8082/cross_cookie_reader.jsp
② 嵌入脚本
<script type="text/javascript" src="http://www.b.com:8082/read_cookies"></script>
③ 后台代码
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {// 获取所有cookieCookie[] cookies = request.getCookies();// 字节组装StringBuilder builder = new StringBuilder();// 设置响应类型 response.setContentType("application/javascript");// 循环读取 if (cookies != null) { PrintWriter writer = response.getWriter();for (Cookie cookie : cookies) {builder.setLength(0);// 组装,结果类似于var token='test123';builder.append("var ").append(cookie.getName()).append("=").append("'").append(cookie.getValue()).append("'").append(";");}// 浏览器输出writer.write(builder.toString());}
④ 读取cookie
<script type="text/javascript">alert(token);
</script>
SSO跨域读写Cookie相关推荐
- 跨域读写Cookie
原文链接 Cookie作用域 Cookie 在二级域名下是可以共享的,如www.a.com 和m.a.com 他们的Cookie 是可以共享的,这也是很多单点登录利用Cookie实现的原理,但是很多站 ...
- java cookie 跨域读取_跨域读写Cookie
Cookie作用域 Cookie 在二级域名下是可以共享的,如www.a.com 和m.a.com 他们的Cookie 是可以共享的,这也是很多单点登录利用Cookie实现的原理,但是很多站点不是二级 ...
- java跨域cookies_跨域读写Cookie
Cookie作用域 Cookie 在二级域名下是可以共享的,如www.a.com 和m.a.com 他们的Cookie 是可以共享的,这也是很多单点登录利用Cookie实现的原理,但是很多站点不是二级 ...
- java cookie p3p_利用P3P实现单点登录和COOKIE的跨域读写
首先说明,同一个顶级域名的情况我不说什么,很简单,就一个Cookie的Domain属性. 下面来说顶级域名不同的情况. 有时候我们会有这么一种需求:当我们登录A网站www.a.com时,同时也要能登录 ...
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jQuery ajax跨 ...
- php跨域单点登录,SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析...
SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1. 跨域redirect实例: te ...
- 前后端分离单点登录SSO实现方案 淘宝、京东跨域获取Cookie、OAuth2、QQ客户端多种模式
演示Demo站点 http://sso.exrick.cn 开源版Github地址 https://github.com/Exrick/x-boot) 开发文档 https://www.kanclou ...
- 转载 - 通过设置P3P头来实现跨域访问COOKIE
作者:老王 网上看了别人介绍的一片文章,说使用P3P可以完成跨域COOKIE操作,感觉很COOL,不过没有提供源代码,我胡乱写了一下,大家看看. 实际工作中,类似这样的要求很多,比如说,我们有两个域名 ...
- PHP 通过设置P3P头来实现跨域访问COOKIE
我的是CentOS的系统(Linux 内核) 编辑HOST vi /etc/hosts 加入 127.0.0.1 www.a.com 127.0.0.1 www.b.com ...
最新文章
- linux 脚本停止自身,Linux系统定时任务时shell脚本停止执行如何解决?
- python爬虫如何从一个页面进入另一个页面-Python爬虫如何获取页面内所有URL链接?本文详解...
- eclipse目录出现重复情况 解决
- oracle删除表中数据_Excel工作表中,删除重复数据的2种方法解读,高效且实用!...
- 20220129CTF刷题-- WEB方向
- Java学习----方法的重载
- UGUI滚动列表ScrollView使用注意点
- centos7.4php测试,CentOS7.4 通过yum安装php7.0
- 浏览器内核与web标准
- SpringMVC中实现文件上传
- 跟涛哥(张开涛)聊聊技术人的发展
- SPSS在银行业中的应用
- 信息学奥赛 python 教程_浦东信息学奥赛课程价格表,Python编程课程
- 检测周转时间 TAT :TURN-AROUND TIME
- 重装系统(无法开机时候操作方法)
- microsoftvisual c++ runtime library错误
- ninjia必须以root权限运行问题
- 2021FME博客大赛 —— 面向海量地貌数据的FME在线质检研究
- html栏目切换,最简单的栏目切换方法(样式系列之栏目切换篇2)
- 智能车改舵机中值步骤_速度,舵机测试,专为舵机调中值