用P3P header解决IE下iframe跨域访问时候session丢失的问题
来源:互联网 发布:阿里云recovery 编辑:程序博客网 时间:2024/04/30 04:44
整合客户的登录时,或者其他一个网站通过iframe时,特别是一个http页面,访问一个https页面时,常常会session失效!
E6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie,Firefox目前还不支持P3P安全特性,firefox中自然也不存 在此问题了。
在frameset里面,也就是里面的frame是来自第三方站点(不同IP或 不同域名),那么默认情况下IE会自动禁用这些站点的cookie,也就是在请求某url时在HTTP header里不发送它们的cookie,包括session的cookie。注意,这些站点在response里面设置的cookie还是会被发送到浏 览器的。
在用户浏览a.php时 A.com写入的为第一方Cookie,其嵌入的iframe指向b.php.这时B.com写入的就为第三方Cookie了,所以它是被IE当在了大门外。 所以,每次当用户提交的cookie提交时,就挂掉了.因为传不到真实的服务器.
解决方案:
只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。他们所用的内容是:
P3P: CP='CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR'
ASP直接在头部加了头部申明,测试有效。
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%>
php的话是如下写法:
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"');
ASP.NET的话
通过在代码上加Response.AddHeader("P3P", "CP=CAO PSA OUR")或者在Window服务中将ASP.NET State Service 启动。
JSP:
response.setHeader("P3P","CP=CAO PSA OUR")
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- 用P3P header解决iframe跨域访问cookie/session
- 用P3P header解决iframe跨域访问cookie/session
- 用P3P header解决iframe跨域访问cookie/session
- IE中iframe跨域丢失Session问题 p3p
- IE中iframe跨域丢失Session问题 p3p
- IE中iframe跨域丢失Session问题(续 p3p)
- 用P3P header解决iframe跨域访问cookie(转) Iframe session失效
- 用P3P header解决iframe跨域访问cookie的问题
- 用P3P header解决iframe跨域访问cookie
- 用P3P header解决iframe跨域访问cookie
- 用P3P header解决iframe跨域访问cookie
- java P3P header解决iframe跨域访问cookie
- CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie
- CP="CAO PSA OUR" 用P3P header解决iframe跨域访问cookie
- 在IE浏览器中iframe跨域访问cookie/session丢失的解决办法
- IE浏览器iframe跨域丢失Session问题
- IE中iframe跨域丢失Session问题
- 链表(二)
- Ubuntu下SVN客户端的安装与配置
- IOS开发(86)之旋转图形
- JSP的语法
- JBOSS5+ActiveMQ5.7集成
- 用P3P header解决IE下iframe跨域访问时候session丢失的问题
- Axure RP For Mac 正式版发布 - 超好用的原型工具
- 如何学习CCNP并顺利通过考试?
- RFID最新资料大全
- 2013关注的地理信息方向及其关键技术
- myeclipse安装svn插件的多种方式
- android轻量型数据库sqlite的使用方法汇总
- 寻找连续的元素相加之和为最大的序列
- leLayout经常用的属性