`
deng131
  • 浏览: 675446 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Iframe跨域访问session失效

阅读更多
在平安项目开发中需要的问题:

业务需求要将a系统嵌入到淘宝平台,也就是通过iframe方式嵌入a系统页面,由于是不同平台系统,不同的域名,所以在测试中就发现在嵌入的a系统中会存在session失效问题,开始以为是前端页面问题,但是在FF下测试不存在,IE下才出现,后来google才知道是跨域问题导致:

产生问题场景:
在一个应用A的某个page中, 通过IFrame的方式嵌入另一个应用B某个页面. 当两个应用的domain 不一样时, 在被嵌入的页面中Session失效。(session基于cookie实现,引用页不允许使用cookie).

引用网上解释:
IE6/IE7从安全性角度考虑,支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。

解决方案:
1. 修改Client的设置
使Client可以接受来自任何网站的Cookie(具体设置在IE选项的隐私页中, 将B站点加入到受信任的站点),或者将两个domain都设置为受信任站点(需要用户设置方案不可取)。

2. 应用的domain修改
简单方案: 两个应用使用同一个domain
复杂方案: 可以在iframe加载的页面里通过setdomain来强制更改

3. P3P
1. 在要嵌入的内容中(iframe指向的站点)输出P3P的主机头声明, 步骤如下:
自定义HTTP头名: P3P,HTTP头值: CP="CAO PSA OUR"

2. 在被嵌入页面响应头里添加一语句:Response.AddHeader("P3P","CP=CAO PSA OUR");


参考:
http://xiaoer-1982.iteye.com/blog/500588
http://www.oschina.net/bbs/thread/4097
分享到:
评论

相关推荐

    iframe 跨域访问session

    然而,当涉及到跨域时,`iframe` 遇到的问题之一就是无法正常访问父页面或被嵌入页面的`session`。这是因为浏览器的同源策略(Same-Origin Policy)限制了不同源之间的交互,包括`session`和`cookie`。 同源策略是...

    iframe跨域与session失效问题的解决办法

    总结起来,解决iframe跨域和session失效的问题,关键在于处理第三方cookie的访问控制和IE浏览器的P3P协议要求。合理的P3P声明是关键所在,它能允许浏览器在符合用户隐私政策的前提下,正确地处理来自第三方源的...

    【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx

    在 ASP.NET 开发中,跨域和 Session 失效问题是一个常见的问题,特别是在使用 iframe 嵌入远程应用时。今天,我们来讨论这个问题的解决办法。 什么是跨域和 Session 失效? -------------------------------- 跨域...

    iframe跨域访问时session丢失

    NULL 博文链接:https://thoreau.iteye.com/blog/745100

    iframe跨域访问示例

    在Web开发中,"iframe跨域访问"是一个重要的概念,涉及到浏览器的安全策略和网页的嵌入技术。本文将深入探讨这个主题,以便更好地理解和应用。 首先,我们需要了解什么是iframe。Iframe,全称Inline Frame,是HTML...

    完美解决iframe跨域问题

    3. **iframe跨域问题**:当iframe加载的页面与包含它的页面不在同一个域时,就会出现跨域问题,导致无法直接通过JavaScript进行通信,如获取iframe内的内容、设置iframe的属性等。 **二、iframe跨域的解决方案** 1...

    IFrame中Session丢失的解决办法

    同源策略限制了来自不同源的脚本之间的直接交互,这意味着如果IFrame加载的是一个与主页面不同的域名下的资源,那么主页面的JavaScript将无法访问IFrame内部的DOM,包括其Cookies和Session数据。此外,IE浏览器对于...

    关于Iframe如何跨域访问Cookie和Session的解决方法

    在Web开发中,Iframe(内联框架)常用于嵌入其他网页内容,但涉及到跨域访问时,尤其是在处理Cookie和Session时,会遇到一些挑战。本文主要探讨如何解决Iframe跨域访问Cookie和Session的问题。 首先,理解跨域访问...

    iframe 跨域解决方法

    然而,由于浏览器的同源策略限制,当`iframe`加载的页面与包含它的页面不在同一个域名下时,就会遇到跨域问题。这篇博客将深入探讨如何解决`iframe`的跨域问题。 首先,理解同源策略是至关重要的。同源策略是浏览器...

    PHP关于IE下的iframe跨域导致session丢失问题解决方法

    总的来说,针对IE浏览器中iframe跨域导致Session丢失的问题,关键在于理解浏览器对跨域Cookie的处理方式,特别是IE的独特限制。通过设置P3P头,可以通知浏览器允许iframe内的页面使用和共享Session,从而修复登录和...

    关于iframe跨域POST提交的方法示例

    以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...

    解决JS跨域访问IFrame的解决方案

    "解决JS跨域访问IFrame的解决方案"这一主题关注的就是如何克服这个限制,使得在JSP页面中嵌入的跨域IFrame能够正常通信。下面我们将详细探讨这个问题以及可能的解决方案。 首先,理解同源策略是关键。同源策略是...

    iframe跨域常用问题和iframe页面自适应

    1. **CORS(Cross-Origin Resource Sharing)**:这是一种现代浏览器支持的跨域资源共享机制,服务器端需要在响应头中添加`Access-Control-Allow-Origin`字段,允许特定或所有来源进行跨域访问。例如,服务器端代码...

    iframe跨域问题

    iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法

    iframe 跨域 自动适应高度

    然而,`iframe`在处理跨域内容时,会受到同源策略的限制,导致一些功能无法正常使用,比如获取iframe内的DOM元素或设置其高度。本文将详细讲解如何解决`iframe`跨域问题以及实现自动适应高度的功能。 1. **同源策略...

    iframe跨域解决方案

    本篇将深入探讨如何解决`iframe`跨域问题。 首先,我们需要了解`iframe`的基本概念。`iframe`全称 Inline Frame,即内联框架,是一种在HTML文档中嵌入另一个HTML文档的方式,常用于加载外部内容,如广告、地图、...

    解决ASP.NET AJAX在frame及iframe中跨域访问的问题

    1、为ScriptManager添加脚本引用,不从ScriptResource.axd中加载MicrosoftAjax.js脚本,而是直接加载 ~/ScriptLibrary/System.Web.Extensions/1.0.61025.0/MicrosoftAjax.js" /> 2、修改MicrosoftAjax....

    iframe跨域通信解决方法

    ### iframe跨域通信解决方法 在现代Web开发中,跨域问题经常出现并困扰着开发者。尤其是在使用`iframe`嵌入不同源的内容时,主页面往往无法直接与`iframe`内的内容进行交互,这就需要一种解决方案来实现跨文档消息...

Global site tag (gtag.js) - Google Analytics