最近在做一个系统(A),需要在系统(A)中集成目前现存系统(B)的功能。
当然,系统(B)功能在访问时做了登陆限制。(一般性都是:系统登陆后把userId放入session中,在具体的功能页面加入session中userId的判断,
如果session中userId不存在,则跳到登陆页,否则继续加载并正常显示功能。)
那么,在系统(A)中要访问系统(B)的功能无非是要绕过系统(B)的登陆。(一般的做法是先跳转到系统(B)中的一个页面,在这个页面里将userId塞入session中,
再自动跳转到实际要访问的功能页面)
以上做法,在不使用框架结构时,是可行的,确切的说是很简单的。
但是如果,系统(A)使用了框架结构,即系统(B)中的功能页面要嵌入到系统(A)的框架中,则会出现一些意想不到的问题,
确切说是系统(B)跳转到了登陆页面,session丢失了。
为什么会这样呢?
因为应用需求在一个页面的不同frame下面访问不同的域,结果造成了session丢失。
问题根源:
IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存在此问题了。Mircosoft对此的具体描述可以参见 Privacy in Internet Explorer 6
解决办法是在要嵌入的内容中(iframe指向的站点)输出P3P的主机头声明:
php:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');
asp.net:
HttpContext.Current.Response.AddHeader("p3p", "CP=\""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""")
jsp:
response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'")
ColdFusion:
<cfheader name="P3P" value="CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'" />
转自:
http://hypgr.iteye.com/blog/587562
分享到:
相关推荐
iframe 跨域访问session问题解决方法
NULL 博文链接:https://thoreau.iteye.com/blog/745100
主要介绍了iframe跨域与session失效问题的解决办法,有需要的朋友可以参考一下
【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx
解决springboot实现跨域session共享问题,防止sql注入。可以更有效的解决token问题,欢迎下载,有问题可以再评论下方留言,及时解答!!加群:687942640
框架完美解决了iframe之间的跨域通讯。底层技术采用window.name转换代理实现
iframe跨域问题:Uncaught DOMException Blocked a frame with origin解决方法
NULL 博文链接:https://hqlly.iteye.com/blog/1662337
这是关于iframe使用过程中出现的问题整理的解决方法,关于使用iframe不用单独写接口打通数据,直接把数据通过ifarme嵌套方法传递过去,使用简单方便。
以前在面试的时候经常遇到问关于跨域的事儿,所以自己对跨域有一定的概念性了解,知道什么是跨域以及解决跨域的方法,但是具体实际从来没有操作过,直到最近在公司项目中,遇到了一个需要使iframe跨域进行POST提交的...
iframe 跨域 自动适应高度;iframe 跨域 自动适应高度;
今天搞的一个登录页面,被别的网站用iframe嵌进去后,死活无法登录(只在IE中存在这种情况)。 很明显,session无法被保存。但是直接在地址栏打开那个登录页面,一切都正常啊。真是奇怪啊。 在网上搜索了一下。发现...
iframe跨域访问示例
iframe跨域嵌套自适应高度 iframe跨域嵌套 丢失session值(针对嵌套asp.net 做的网站)
该文档介绍了vue和普通web页面中iframe实现跨域的解决方案,解决了主页面中无法调用iframe方法的问题
iframe 与主框架相互访问例子,包含同域访问,跨域访问例子。
本篇文章小编将为大家介绍,关于Iframe如何跨域访问Cookie和Session的解决方法,有需要的朋友可以参考一下
在web开发中,跨域问题是经常遇到的,但是由于浏览器同源策略的限制,不同域之间属性和操作是无法直接交互的。本次讨论iframe和父页面的消息通信。
finereport是一款常用的表格制作软件/报表开发工具,本资源讲述在表格制作软件中实现iframe跨域单点登陆的具体实现方法,包括具体的操作步骤和实现代码等