Posted on 2010-12-16 15:43 蜗牛向上爬 阅读(1081) 评论(0) 编辑 收藏
cookie是用来在某一个域下使用的,比如在.baidu.com这个域下种一个cookie,那么.google.com这个域就不能使用它;这是浏览器出于对用户隐私保护的考虑。要实现跨域的一个思路就是:客户端浏览器对某些html标签(比如script、iframe)的src没有进行跨域限制,用它们以GET方式夹带本域种的cookie值动态请求外域的程序,这个外域的程序来种植该域的值为GET参数传过去的cookie,从而达到互通的目的。例如:
最近上线的家天下单点登录首页里有一个员工论坛的链接,而员工论坛部署在.soufun.com域名下。为了实现在家天下单点登录首页可以直接进入员工论坛。我们的做法是:在家天下单点首页加载完后,利用js在页面动态添加一个script标签,向搜房的单点的接口发请求,验证通过后设置.soufun.com域的cookie。就有了.soufun.com域下的cookie,论坛就可以直接进入了。
这样的做法就是所谓的“jsonp”,用iframe也可以实现同样的效果。但是iframe存在很多浏览器兼容问题,个人认为还是用jsonp更省事。
经过实际使用发现Firefox、chrome等不用P3P也可以跨域,但是IE必须用加P3P的头信息才可以跨域。看来IE对跨域的限制更为严格!所以要想实现完全跨域,还是加上下面这句头信息比较好:)
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA div COM NAV OTC NOI DSP COR"');
但是网上有人说P3P有安全隐患,我没有搜到具体原因和更好的解决方案。
参考资料:http://xiaolele.javaeye.com/blog/666434
分类: JavaScript
分享到:
相关推荐
综上所述,"完全跨域单点登录DEMO"提供了学习和实践SSO技术的平台,通过"WebSSODemo"和"WebSSOAuth"的代码,开发者可以深入理解SSO的实现原理,以及Cookie、JWT和OAuth 2.0在SSO中的应用,进一步提升Web应用的身份...
在Java开发环境中,实现完全跨域的单点登录是一项重要的技术挑战,涉及到多个领域的知识,包括HTTP协议、Cookie管理、会话跟踪、授权机制等。本篇文章将深入探讨这一主题,并基于给定的标签"SSO"、"Java"和"单点登陆...
标题中的“Cookie跨域”指的是在互联网应用中,由于浏览器的同源策略限制,通常情况下,Cookie只能由创建它的源(即域名)读取。但有时候开发者需要在不同域名之间共享用户状态或会话信息,这时就需要实现Cookie的...
在这个“完全跨域SSO”实现中,我们将探讨如何跨越不同的域名或子域名实现SSO功能,这对于大型企业或拥有多个子网站的组织来说尤其重要。 首先,我们需要理解SSO的核心概念:票据(Ticket)。在SSO流程中,用户首次...
1. **P3P(Platform for Privacy Preferences)**:这是一种由W3C提出的隐私偏好平台标准,允许跨域`cookie`的设置。通过在响应头中添加`P3P`政策,服务器告诉浏览器它尊重用户的隐私。但这并不总是有效,因为并非...
如果这三个元素不完全相同,那么两个URL就被认为是不同的源。 在Web应用程序中,当一个域下的JavaScript尝试访问另一个域的资源(如HTML、图片、Ajax请求等)时,浏览器会根据同源策略进行拦截,这便是所谓的“跨域...
然而,在实现跨域访问时,通常会遇到Cookie丢失的问题,这是由于浏览器的同源策略所导致的。本文将详细介绍解决Ajax跨域访问时Cookie丢失问题的方法。 首先,我们需要了解什么是同源策略。同源策略限制了来自不同源...
1. 同源策略:同源策略规定,JavaScript只能访问与自身URL协议、域名和端口完全相同的页面元素和资源。例如,`http://example.com`上的脚本不能直接操作`http://other.example.com`上的资源。 2. CORS(跨源资源...
Cors实现java后端完全跨域实例 cors(Cross-Origin Resource Sharing,跨域资源共享)是一种机制,它允许Web页面从不同的域名、协议或端口下加载资源,实现跨域访问。在java后端开发中,cors是一个非常重要的概念,...
在Web开发中,由于浏览器的同源策略限制,JavaScript代码通常只能访问与自身页面协议、域名和端口完全相同的资源。这种安全机制是为了防止恶意脚本通过跨站点请求获取用户敏感信息。然而,随着互联网的发展,开发者...
**同源策略**是指如果两个页面的协议、域名和端口完全相同,则这两个页面被视为同源。这一策略旨在防止一个站点的脚本非法访问或篡改另一个站点的资源。如果两个页面的主域名相同,可以通过设置`document.domain`...
这里所说的“同源”是指协议、域名以及端口三者完全相同。如果不满足同源条件,那么浏览器就会阻止一个网页获取另一个不同源网页的数据。 #### 二、什么是同源? 1995年,同源策略由Netscape公司引入浏览器,现在...
同源策略是浏览器为了安全而实施的一项规定,它禁止一个源(比如一个域名)的文档或脚本请求另一个源的资源,除非两个源完全相同。WFS服务通常运行在不同的服务器上,因此当我们试图在本地或者非WFS服务器的环境下...
WebApi 跨域问题主要源于浏览器的同源策略,这是一种安全机制,限制JavaScript或Cookie只能访问同一源(协议+域名+端口)下的内容。在实际开发中,当WebApi作为一个独立的服务,例如数据服务层,而MVC项目作为前端...
当涉及到二级域名或跨域共享时,这意味着一个网站的Cookie需要在它的子域名或者完全不同的域下也能被访问。 **实现步骤** 1. **设置`Domain`属性**:这是实现跨域共享的关键。在创建或更新Cookie时,需要设置`...
然而,出于安全考虑,浏览器默认禁止Cookie跨域传输,即一个域下的页面只能访问该域创建的Cookie,无法获取其他域的Cookie。但在某些场景下,如多站点共享用户信息或单点登录系统,跨域Cookie就显得十分必要。本文将...
JSONP适用于简单请求,CORS更灵活但需要服务器配合,代理服务器则可以完全绕过同源策略,而`document.domain`适用于同一顶级域名下的跨子域场景。在实际应用中,开发者应根据具体情况权衡利弊,选择合适的解决方案。
跨域是浏览器为了安全而实施的一种策略,阻止了JavaScript从一个源(Origin)向另一个源发送请求,除非两个源完全相同。但有时候我们需要打破这种限制,比如API服务部署在不同的域名下。 本文将深入探讨如何在ASP...