JavaScript-如何获取iframe子页面的本地cookie?

小组事务管理 小组事务管理 主题:974 回复:1955

JavaScript-如何获取iframe子页面的本地cookie?

浮生未歇 发布于 2017-04-02 字数 72 浏览 1077 回复 2

注意 我想要解决的还有IE的安全限制问题,就是如何不受这个限制,谢谢

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

甜柠檬 2017-08-23 2 楼

很多的浏览器都会默认阻止iframe里的cookies。
方法1:修改办法一般都是修改p3p头来实现的,也就是使用P3P协议来获取跨域cookie,各个不同的语言写法不同,以jsp为例:
response.setHeader("P3P","policyref="http://www.mysite.com/w3c/p3p.xml" CP="ALL DSP COR CUR OUR IND PUR"");
方法2:利用Cross Iframe.Trick来绕开这个问题,但是缺点也很明显,安全性上一直存在诟病

清晨说ぺ晚安 2017-07-16 1 楼

由于页面里的iframe都是发送的session cookie,所以子框架页面里本身是只有一个session cookie的,我们无法通过在子框架里执行js的方法来获取本地cookie,无中生有的事情是干不出来的。

了解这一原理后,思路就很明确了:想办法新起一个不受限制的窗口,从而获取本地cookie。

具体来说,有这么两个办法:
1、 使用window.open打开一个新窗口
2、 回到父窗口,让其打开一个新窗口

在子框架中,使用window.open()确实可以发送本地cookie,但是问题是浏览器一般会限制页面弹窗口,会被拦截,所以这个方法比较囧~~,不是个好办法。

而第二个办法,回到父窗口去打开新窗口,就涉及到一个突破iframe执行脚本的问题,而这个问题在我的前一篇Cross Iframe Trick 里已经解决了,所以我们的方法就呼之欲出了。