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

Android程序员 2011-07-18

今天平台联调时,把我们的产品挂在其他平台的<iframe>框架时,发现登录不了,原来是不能写cookie,通过网上资料查询,找到了解决办法.

在IE安全限制往iframe框架内的网站写cookie目的:

1.iframe的限制

2.突破iframe写或获取本地cookie的思路

3.利用CrossIframeTrick突破iframe安全限制

<iframeid="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=CAOPSAOUR"%>

1.php的话,我没去试,应该是如下写法:

header('P3P:CP=CAOPSAOUR');

2.ASP.NET的话,照抄网上的。

通过在代码上加Response.AddHeader("P3P","CP=CAOPSAOUR")或者在Window服务中将ASP.NETStateService启动。

3.JSP:

response.setHeader("P3P","CP=CAOPSAOUR")

服务器不支持Cookies的特殊原因.

相关推荐

翟浩浩Android / 0评论 2015-01-12