`

zt-如何在IE安全限制往iframe框架内的网站写cookie

    博客分类:
  • jsp
阅读更多
今天平台联调时,把我们的产品挂在其他平台的<iframe>框架时,发现登录不了,原来是不能写cookie,通过网上资料查询,找到了解决办法.
在IE安全限制往iframe框架内的网站写cookie目的:
1. iframe的限制
2. 突破iframe写或获取本地cookie的思路
3. 利用Cross Iframe Trick突破iframe安全限制

<iframe id="frame1" style="left: 0px; position: absolute; top: 0px" name="frame" marginwidth="0" marginheight="0" src="http://xxx/xx/jaoEntrance.do?userId=xx&roleId=x" frameborder="0" width="250" scrolling="no" height="250" allowtransparency="allowtransparency">
这也算是一个长期困扰我的一个问题,就是A站iframe其它站(B站)的内容时,B站的页面获取不到B站种下的Cookies。

原因是引用
如果页面是来自框架的,而框架的父页和框架不是一个站点的话,客户端默认是禁止向页面附加头信息的,这样服务器端就无法识别客户端框架里面的页面,自然不能操作Session。

ie下 iframe和跨域名写cookie的问题,以下方法测试成功!
在试验时,先只在读取Cookies时设置,不行。读取和输出都设置才可以。后来发现,只需要在输出时设置一下就可以了,读取时无需设置

考虑直接改IIS设置比较麻烦,直接在ASP头部加了头部申明,测试有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>

1.php的话,我没去试,应该是如下写法:
header('P3P: CP=CAO PSA OUR');

2.ASP.NET的话,照抄网上的。
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。

3.JSP:
response.setHeader("P3P","CP=CAO PSA OUR")
服务器不支持Cookies的特殊原因.

分享到:
评论
1 楼 panjun 2011-08-25  

相关推荐

Global site tag (gtag.js) - Google Analytics