在平安项目开发中需要的问题:
业务需求要将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失效问题的解决办法,有需要的朋友可以参考一下
【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx
NULL 博文链接:https://thoreau.iteye.com/blog/745100
iframe跨域访问示例
iframe 与主框架相互访问例子,包含同域访问,跨域访问例子。
IFrame中Session丢失的解决办法
框架完美解决了iframe之间的跨域通讯。底层技术采用window.name转换代理实现
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
NULL 博文链接:https://hqlly.iteye.com/blog/1662337
iframe 跨域 自动适应高度;iframe 跨域 自动适应高度;
iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法
今天搞的一个登录页面,被别的网站用iframe嵌进去后,死活无法登录(只在IE中存在这种情况)。 很明显,session无法被保存。但是直接在地址栏打开那个登录页面,一切都正常啊。真是奇怪啊。 在网上搜索了一下。发现...
通过HTTPClient界面在JSP中嵌入iframe子界面跨域时,无法获取跨域界面的属性值的问题
本篇文章小编将为大家介绍,关于Iframe如何跨域访问Cookie和Session的解决方法,有需要的朋友可以参考一下
这是关于iframe使用过程中出现的问题整理的解决方法,关于使用iframe不用单独写接口打通数据,直接把数据通过ifarme嵌套方法传递过去,使用简单方便。
iframe跨域嵌套自适应高度 iframe跨域嵌套 丢失session值(针对嵌套asp.net 做的网站)
该文档介绍了vue和普通web页面中iframe实现跨域的解决方案,解决了主页面中无法调用iframe方法的问题
finereport是一款常用的表格制作软件/报表开发工具,本资源讲述在表格制作软件中实现iframe跨域单点登陆的具体实现方法,包括具体的操作步骤和实现代码等