跨域获取cookie,多个网站实现一键登录

A网站首页PHP(也可以在登录页面加入下面的代码)加入如下代码
view plaincopy to clipboardprint?
1.<?php
2.//清空cookies
3.setcookie("mywinduid");
4.//为B页面权限设置cookie, setcookie("mywinduid",$winduid,time()+60*60*24);//
设置为1天失效,下面为关闭浏览器失效
5.setcookie("mywinduid",$winduid);
6.?>
A网站增加文件getcookies.php,目的是为了让B网站可以以ajax方式来查询A网站的cookie
getcookies.php 代码如下
view plaincopy to clipboardprint?
1.<?php
2.$callback = $_GET['jsoncallback'];
3.$mywinduid = $_COOKIE['mywinduid'];//多个参数的话以","隔开,例如
json_encode(array('winduid'=>$winduid,'msg'=>$msg));
4.//可以用json_encode自动转换,也可以手写json格
式 $json_data = '{"mywinduid":'.$mywinduid.'}';
5.$json_data = json_encode(array('mywinduid'=>$mywinduid));
6.//必需以下这样形式输出,重点就是发送请求的网页的参数中要有jsoncallback参

7.echo $callback.'('.$json_data.')';
8.?>
在需要查询A网站cookie的B网站页面中增加如下代码
view plaincopy to clipboardprint?
1.<script type="text/javascript" src="jquery-1.6.1.min.js"></script>
2.<script type="text/javascript" src="jquery.cookie.js"></script>
3.<script type="text/javascript">
4.$(function(){
5. $("#adminwhj").click(function(){//点击B网站中的登录按钮,这地方也可以不需
要用click,直接打开页面就获取cookie
6. var myurl = "/getcookies.php?action=getcookie";
7. $.getJSON(myurl+"&jsoncallback=?", function(data){
8. if(data.mywinduid!="" && data.mywinduid!= null){
9. var winduid = data.mywinduid;
10. if((winduid==4)||(winduid==2)){
11. $.cookie('mywinduid',winduid);//设置cookies
12. location.reload();//刷新页面
13. }else{
14. alert("您没有管理权限!");
15. }
16. }else{
17. alert("请在登录后再进行管理");
18. }
19. })
20. })
21. })
22. </script>
下面是B网站的这个页面中需要做权限判断的代码
view plaincopy to clipboardprint?
1.<!--需要权限的判断开始-->
2.<?
3.$winduid=$_COOKIE["mywinduid"];
4.if (($winduid==4)||($winduid==2))
5.{<!--管理需要的代码-->}
6.?>
整个原理就是,B网站上文件可以通过A网站的getcookies.php来获取A网站的cookie,然后在B网站的页面提供权限判断,这样B网站中不需要再单独做用户登录
提供jquery库最新版的下载,以及jquery.cookie.js的下载
/fancybox/jquery-1.6.1.min.js
fancybox/jquery.cookie.js。

合集下载

基于Web Service实现跨域网站一次登录

基于Web Service实现跨域网站一次登录
信息 安全 与技 术 ・ 0 1 5・ 5・ 2 1. 0 1
图 2We e i 的工作原理 bSr c ve
T c n l g n t d 技 术 探 讨 e h o o y a d Su y・
We b上 交换 结 构 信 息 的 X ML协议 , 用 RP 采 C作 为 一致 性 的 调用 途径 。
技术探讨 ・ ehooyadSuy Tcn ri e
实现 跨域 网站 一次 登录
邓树 芳
( 炭科 学研 究总 院经 济 与信 息研 究分 院 北 京 10 1) 煤 0 0 5
【 摘要】 b Sri 技术由于其特点和优势 , We ev e c 在分布式计算中占有重要地位。本文首先简要描述 了跨域不同 We 站点一次登录 b




渤 斑
域 缛 佧 黼

域 拚
薅 就 聪 域 狲





饿 怠 播 黼

火型 验 装鬻 储拣 嵌 渊


图 1共享 平台的构成
次登录” 指每个用户拥有一个统一账号, 用户使用该
账 号 , 论 从 门户 登 录 , 是 从资 源 站 点登 录 , 无 还 只需 登录 一 次 , 就 可 以访 问整 个共 享 平 台 , 既包括 门户 也包 括 资源 站点 。 样 , 这 整 个 共享 平 台对于 用 户来 说 , 是一 个 单一 的应 用一 样 。 就像
的需 求 , 简单 介 绍 了 We e i 随后 bS rc v e的原理 . 后说 明了应 用 We e i 技 术解 决一 次登 录 的技术 方 法。 最 bSr c ve 【 键 宇】 e 服 务 ; 登 录 :o k 关 wb 一次 C oi e

Selenium获取登录Cookies并添加Cookies自动登录的方法

Selenium获取登录Cookies并添加Cookies自动登录的方法

Selenium获取登录Cookies并添加Cookies⾃动登录的⽅法本章中⽤到的关键⽅法如下:get_cookies():获得所有cookie信息。

get_cookie(name):返回字典的key为“name”的cookie信息。

add_cookie(cookie_dict):添加cookie。

“cookie_dict”指字典对象,必须有name 和value 值。

delete_cookie(name,optionsString):删除cookie信息。

“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,⽬前⽀持的选项包括“路径”,“域”。

delete_all_cookies():删除所有cookie信息。

1、模拟登陆并获取Cookiesfrom selenium import webdriverimport timedriver = webdriver.Chrome()driver.get('https:///')# 模拟登陆driver.find_element_by_link_text('登录').click()time.sleep(2)driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click()time.sleep(2)driver.find_element_by_name("userName").send_keys("账号")driver.find_element_by_name("password").send_keys("密码")driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__submit"]').click()time.sleep(20) #可能会出现验证码,⼿动点⼀下# 获取cookiescookies = driver.get_cookies()print(cookies)driver.quit()2、添加Cookies⾃动登录注:获取Cookies的时候每个字典的字段不统⼀,全部添加会报错,所以本⼈只添加了⽐较重要的⼏个字段。

二级域名或跨域共享cookies的实现方法

二级域名或跨域共享cookies的实现方法

在网络编程领域中,二级域名和跨域共享cookies的实现方法是一个十分重要的主题。

本文将深入探讨这两个概念,并共享实现方法以及个人观点和理解。

1. 二级域名的概念和作用二级域名是指域名中在顶级域名(如、.net)之下的一级域名。

在xxx中,"example"就是二级域名。

二级域名的作用在于更好地组织和管理全球信息站,帮助用户更容易地记忆和访问全球信息站。

二级域名还可以用于区分不同的业务板块或部门,提高全球信息站的灵活性和可扩展性。

2. 跨域共享cookies的挑战和解决方法在网络编程中,跨域共享cookies是一个常见的挑战。

由于浏览器的同源策略限制,一个全球信息站无法直接访问另一个域名下的cookies。

解决这一挑战的方法之一是使用二级域名来实现跨域共享cookies。

通过在不同子域名下设置相同的cookie Dom本人n 属性,可以使这些子域名之间共享cookies。

3. 实现方法要实现跨域共享cookies,可以按照以下步骤进行:- 在主域名下设置cookies时,将Dom本人n属性设置为顶级域名,比如example。

- 在不同的二级域名下,可以通过在网页的请求头中设置withCredentials为true来指示浏览器发送包含cookies的跨域请求。

4. 个人观点和理解个人觉得使用二级域名来实现跨域共享cookies是一种简单而有效的方法。

通过合理地组织和管理全球信息站的二级域名结构,可以更好地利用cookies在不同子域名之间共享数据,提高全球信息站的整体性能和用户体验。

值得注意的是,在实际应用中,还需要注意安全性和隐私保护,避免跨域共享cookies导致安全风险。

5. 总结通过本文的介绍,我们深入理解了二级域名的作用以及跨域共享cookies的实现方法。

我们也了解了这些方法的优势和注意事项。

通过合理地利用二级域名和跨域共享cookies,我们可以更好地组织和管理全球信息站,并提高用户体验。

通过设置P3P头来实现跨域访问COOKIE

通过设置P3P头来实现跨域访问COOKIE

聚合后,返回一个重定向页面到 app 的某个 URL,由该 URL 设置 app cookieD. 此时浏览器上可看见的页面容器实际上也是可以和重定向回来的内容交互的。

比如可以用 js 控制发现重定向页面成功返回后,就刷新整个页面,让它看起来和用户登录后访问没有什么区别。

下面是真正的技巧:怎样才能在 IE 里面跨域去设置 cookie上述技术看起来是不是很好?但它的前提是所有的登录都 post 到 sso server 上,认证成功后再返回 app 页面。

可我接受到的需求之一就是要支持页面无刷新登录。

哈!就是说本来在 上提交登录表单的 action 应该是 这个 sso server。

可是在 AJAX 大潮下,chinaren 计划采用 XMLHTTPRequest 提交,这个就麻烦了,因为是不能跨域来提交的。

那么解决方法就是跨域产生 cookie,即 js 发现口令校验成功后,再在 上种上合法的 cookie.套用上面的跨域读 cookie 的方案似乎很简单去推论:就是创建一个隐含的 iframe,让那个iframe 去调用 的 URL 来产生 cookie。

很遗憾,此方法在 Fx 下工作的很好,但是不能在 IE 上应用。

(在 IE 状态栏上显示 cookie 隐私警告,红色圆底白横杠)我试了很多很多方法,包括创建 、 node,包括用 js 设置,但都一次次被 IE 无情的挡在了浏览器外。

google 之,也没有任何真正可用的答案,中文网页要么介绍的方法是错的,要么说无解。

最后还是在 chinaren 一哥们的帮助下,翻出了他们所使用的,以和 交互的方法(不知道是哪位牛人发现的),只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。

他们所用的内容是:P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"最后是我做的一个小小的演示:cookie 怎么在 和 之间交互1. /cookie.php2. 随便输入什么,点 reset cookie,就可以看到 的 cookie 已经被设上了。

js解决cookie跨域访问的问题

js解决cookie跨域访问的问题

js解决cookie跨域访问的问题今天有一同事问到一个Cookie跨域访问的问题,大概是这样的:“有两个不同域名的系统A(/a.jsp)与B(/b.jsp);当系统A成功登录后,系统B也能够同时自动完成登录,有点像一点登录的效果”。

为了快速、简单的实现这一功能,首先想到就是通过JS操作Cookie并让两个不同域的cookie能够相互访问,这样就可达到了上述的效果,具体实现过程大致可分以下两个步骤:1、在A系统下成功登录后,利用JS动态创建一个隐藏的iframe,通过iframe的src 属性将A域下的cookie值作为get参数重定向到B系统下b.jsp页面上;Js代码var _frm = document.createElement("iframe");_frm.style.display="none";_frm.src="/b.jsp?test_cookie=xxxxx";document.body.appendChild(_frm);2、在B系统的b.jsp页面中来获取A系统中所传过来的cookie值,并将所获取到值写入cookie中,这样就简单的实现了cookie跨域的访问;不过这其中有个问题需要注意,就是在IE浏览器下这样操作不能成功,需要在b.jsp页面中设置P3P HTTP Header就可以解决了(具体詳細信息可以参考:/P3P/),P3P设置代码为:Java代码<%response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'");%>。

跨域单点登录常用的方式

跨域单点登录常用的方式

跨域单点登录常用的方式-概述说明以及解释1.引言1.1 概述概述部分的内容可以介绍关于跨域单点登录的背景和概念,以及为什么需要使用跨域单点登录的方式来实现用户认证和授权。

跨域单点登录是在分布式系统中实现用户认证和授权的一种技术方式。

在传统的单体应用中,用户只需登录一次即可访问应用中的各个模块和功能。

然而,在面向服务的架构中,每个服务都有自己的认证和授权机制,用户需要多次登录来使用不同的服务。

这不仅给用户带来了不便,也增加了管理和维护的复杂度。

为了解决这个问题,跨域单点登录技术应运而生。

它允许用户在登录一次后,在跨域的情况下,无需再次输入用户名和密码来访问其他域下的应用。

通过统一的认证中心来管理用户的身份和权限信息,各个服务可以通过认证中心进行用户认证和权限校验,从而实现跨域的单点登录。

在实践中,有多种方式可以实现跨域单点登录,例如基于Token的认证机制、基于OAuth2的认证授权框架等。

这些方式各有特点和适用场景,可以根据具体需求选择合适的方式来实现跨域单点登录。

总而言之,跨域单点登录是一种解决分布式系统中用户认证和授权问题的技术方式。

它通过统一的认证中心管理用户身份和权限信息,实现用户在跨域情况下的无缝访问。

本文将介绍几种常用的跨域单点登录方式,并对其特点和应用场景进行分析和总结。

1.2 文章结构文章结构部分的内容应该包括对整篇文章的章节组织和内容概述的说明。

文章结构应该根据不同的方式来组织,主要包括两种方式。

第一种是方式一,该方式的特点是...第二种是方式二,该方式的特点是...本文将分别对这两种方式进行详细的介绍和比较,以便读者能够更好地理解和掌握跨域单点登录常用的方式。

接下来,我们将先介绍方式一,包括其原理、实施步骤以及优缺点等方面的内容。

然后,我们将转向方式二,同样详细地介绍其原理、实施步骤以及与方式一的比较等内容。

通过对这两种方式的介绍和分析,读者将能够更好地了解跨域单点登录的常用方式,并能够根据实际需求选择适合的方式进行实施。

cookie实现自动登录

cookie实现自动登录一、登录的设置1、输入命令行打开“开始”→“运行”,在“运行”一栏中输入“Rundll32netplwiz.dll,UerRunDll”命令打开用户帐户窗口(注意区分大小写),去除“要使用本机,用户必须输入用户名密码”复选框中的勾号。

这样在下次登录时就可自动登录了。

若要选择不同的帐户,只要在启动时按“Shift”键就可以了。

2、修改注册表通过改动注册表可实现自动登陆,方法是打开“开始”→“运行”,在“运行”一栏中输入“Regedit”命令打开注册表编辑器,依次打开HKEY_LOCAL_MACHIN\SOFTWARE\Microoft\WindowNT\CurrentVerion\Winlo gon,在右侧窗口分别新键字符串值autoadminlogon:键值为1;defaultpaword:键值为自动登陆用户的密码。

其中在注册表中有defaultuername这个字符串值,其默认键值是Adminitrator,您也可将它更改为自己所需要的管理员帐号。

3、应用软件法软件名称:TweakUI2.10汉化版点击“应用”按钮后,在弹出的对话框中输入并确认密码,最后按“确定”即可。

二、关机的设置1、编辑组策略打开“开始”-“运行”,在“打开”一栏中输入“gpedit.mc”命令打开组策略编辑器,依次展开“计算机配置”→“管理模板”→“系统”,双击右侧窗口出现的“显示‘关闭事件跟踪程序’”,将“未配置”改为“已禁用”即可。

2、修改注册表打开“开始”→“运行”,在“运行”一栏中输入“Regedit”命令打开注册表编辑器,依次打开HKEY_LOCAL_MACHINE\SOFTWARE\Policie\Microoft\WindowNT,新建一个项,将其取名为“Reliability”,而后在右侧窗口中再新建一个DWORD值,取名为“ShutdownReaonOn”,将它的值设为0就可以了。

二级域名或跨域共享cookies的实现方法

文章标题:二级域名或跨域共享cookies的实现方法1. 介绍在Web开发中,跨域共享cookies是一个常见且重要的问题。

特别是在涉及多个二级域名的全球信息湾中,要实现不同二级域名之间的cookie共享并确保安全性是非常具有挑战性的。

本文将深入探讨二级域名或跨域共享cookies的实现方法,以便读者更深入地理解这一关键概念。

2. 什么是二级域名?在Web中,域名是用来唯一标识一个全球信息湾的。

而一个完整的域名通常包括顶级域名、二级域名和主域名。

其中,主域名通常指的是一个全球信息湾的名称部分,而二级域名则是主域名的子域名。

举例来说,对于域名example,二级域名,example是主域名是顶级域名。

3. cookies的作用及限制在Web开发中,cookies是一种用来存储客户端状态信息的技术。

它可以让服务器在客户端创建和存储信息,以便在后续的请求中使用。

然而,由于安全性考虑,浏览器对跨域cookies的共享有一些限制,尤其是在涉及不同二级域名的情况下。

4. 两个二级域名下cookies共享的需求在实际的Web开发中,我们经常会遇到这样的情况:一个全球信息湾拥有多个子域名,比如a.example和b.example,而用户在a.example上登录后,希望在访问b.example时能够保持登录状态。

这时就需要实现跨域cookies的共享,以便在不同二级域名下共享用户的登录状态。

5. 实现方法为了实现不同二级域名间的cookies共享,我们可以采用以下几种方法:5.1 隐式跨域cookies共享在不同二级域名下设置相同的主域名,比如将a.example和b.example的主域名都设置为example。

这样,在用户登录a.example后,可以将cookies的作用域设置为example,从而实现在不同二级域名下共享cookies。

5.2 使用iframe或postMessage通过在页面中嵌入iframe或使用postMessage来进行页面间的通信,以实现跨域cookies的共享。

跨域登录

跨域登录跨域登录是一个比较烦人的事情,往往我们需要写文章记录下来,或者探讨,或者抛砖引玉的问题,都是令人头疼的。

上次简单得写了一篇关于跨域登录的文章,只讲了大体的实现过程。

但是现在碰到了更大的问题,这篇文章将会介绍这个成败,并探讨、实现新方案的可行性。

跨域登录需要一张通行证,也可以称之为票据。

就老衲现在知道和实验的方式一共有三种:1、浏览器get参数;2、session3、cookie每个都有特定的条件,以及需要处理的细节,也会带来一些新问题。

根据经验,浏览器带参数,将会使系统开发得不像个东西,至少我是这么认为的。

需要考虑对这个地址参数处理的各种策略,一开始我就否定了这个方案。

在我需要改造的项目中有4个独立域名,跳转来跳转去,将会给用户造成极为不爽的体验。

session也可以解决问题,但是有一个问题无法解决。

先看看怎么用session解决问题。

假设现在有,,现在开两个子域名: 和。

然后把这两个域名指向同一个站点,也就是在同一个站点的http投绑定这两个域名。

那么登录的时候,在上登录成功,就可以设置一个session,那么在两个系统当中都是可以通过代理文件,访问到这个session的,这个方案确实是可行的。

但是session只能保持20分钟,新问题就出来了。

假设这个用户20分钟没有去操作,而打开了另外一个域名,那么这个判断就失效了。

访问本域是没问题的,cookie还在那里摆着。

我比较倾向于用cookie来解决问题。

上一次设计的系统,可以说极其简单。

4个系统,有3个是的,还有个论坛是asp的(不用说就是动网的了)。

现在就有四套登录系统。

如果整体上全部改造,老衲认为成本太大了。

后来四处逛网站,借鉴了Sohu的登录方式,但是只做了个体验的实现,如果全部实现了就不会现在在这里探讨这个问题了。

解决方案就是javascript + iframe实现的。

本来想用纯javascript实现,然后给src的文件带参数,但是实际开发过程中,应该是我的js水平太菜,所以感觉不到想要的那种效果。

P3P解决cookie跨域

P3P解决cookie跨域P3P是什么P3P(Platform for Privacy Preferences)是W3C公布的⼀项隐私保护推荐标准,以为⽤户提供隐私保护。

P3P标准的构想是:Web 站点的隐私策略应该告之访问者该站点所收集的信息类型、信息将提供给哪些⼈、信息将被保留多少时间及其使⽤信息的⽅式,如站点应做诸如“本⽹站将监测您所访问的页⾯以提⾼站点的使⽤率”或“本⽹站将尽可能为您提供更合适的⼴告”等申明。

访问⽀持P3P⽹站的⽤户有权查看站点隐私报告,然后决定是否接受cookie 或是否使⽤该⽹站。

利⽤P3P实现跨域有别于JS跨域、IFRAME跨域等的常⽤处理办法,通过发送P3P头信息⽽实现的跨域。

PHP 使⽤P3P协议header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');JS 使⽤P3P协议xmlhttp.setRequestHeader( "P3P" , 'CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"' ); 使⽤P3P协议HttpContext.Current.Response.AddHeader("p3p", "CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"")JSP 使⽤P3P协议response.addHeader("P3P", "CP=IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT");策略说明compact-policy-field = `CP="` compact-policy `"`compact-policy = compact-token *(" " compact-token)compact-token = compact-access |compact-disputes |compact-remedies |compact-non-identifiable |compact-purpose |compact-recipient |compact-retention |compact-categories |compact-testcompact-access = "NOI" | "ALL" | "CAO" | "IDC" | "OTI" | "NON"compact-disputes = "DSP"compact-remedies = "COR" | "MON" | "LAW"compact-non-identifiable = "NID"compact-purpose = "CUR" | "ADM" [creq] | "DEV" [creq] | "TAI" [creq] |"PSA" [creq] | "PSD" [creq] | "IVA" [creq] | "IVD" [creq] |"CON" [creq] | "HIS" [creq] | "TEL" [creq] | "OTP" [creq]creq = "a" | "i" | "o"compact-recipient = "OUR" | "DEL" [creq] | "SAM" [creq] | "UNR" [creq] |"PUB" [creq] | "OTR" [creq]compact-retention = "NOR" | "STP" | "LEG" | "BUS" | "IND"compact-category = "PHY" | "ONL" | "UNI" | "PUR" | "FIN" | "COM" |"NAV" | "INT" | "DEM" | "CNT" | "STA" | "POL" |"HEA" | "PRE" | "LOC" | "GOV" | "OTC"compact-test = "TST"简洁策略常⽤的简洁策略的 P3P头为 - P3P : CP=CAO PSA OUR最简洁的写法是 P3P:CP=.compact-access(访问): CAO - contact-and-other 允许第三⽅cookie的读写)compact-purpose(⽬的): PSA - pseudo-analysis .⽬的就是做⾝份验证、分析compact-recipient(受体): OUR - ours 声明使⽤相关信息的⼈是谁,ours 第三⽅⾃⼰浏览器⽀持情况浏览器默认允许第三⽅Cookie是否⽀持P3P禁⽌第三⽅Cookie后,配置P3P简明策略头的效果IE6否是HTTP可读写Cookie JS可读Cookie ⾸次读到P3P头,JS⽆写Cookie权限.第⼆次才OK(第⼆次.直接Cache.也不⾏.除⾮第⼀次⾮Cache并读到p3p头.后⾯我会提到解决⽅案.)应当避免JS的写操作IE7-IE9否是HTTP、JS,可随意读写.FireFox是否HTTP、JS都不可读写Chrome是部分⽀持,趋势-否趋势为HTTP、JS可读不可写.Safari否否HTTP、JS可读不可写可以借助借助Post提交表单,实现写操作.Opera是否JS可读写 HTTP可读不可写.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档