用P3P header解决IE下iframe跨域访问时候session丢失的问题

整合客户的登录时,或者其他一个网站通过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丢失的问题相关推荐

  1. CP=CAO PSA OUR 用P3P header解决iframe跨域访问cookie

    短信模块以iframe方式嵌入系统,系统登录时,短信登录失败,这种情况只在win7下IE出现,win10未出现. 原因:IE禁止iframe跨域访问cookie 解决方案: 在短信登录时,进行如下设置 ...

  2. 利用代理页面解决html iframe跨域访问网站问题

    原文:利用代理页面解决html iframe跨域访问网站问题 源代码下载地址: http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到 ...

  3. html的页面怎样直接跨域访问,【HTML】iframe跨域访问问题

    概述 本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度. 1.问题重现: Chrome 版本 41.0.2272.10 ...

  4. iframe 跨越访问_js iframe跨域访问

    1.什么是跨域? 2.前台解决跨域几种方法 2.1 动态创建script 2.2 使用document.domain 2.3使用HTML5新属性postMessage 2.4 利用iframe和loc ...

  5. QQ登录IE下iframe跨域session和cookie失效问题的解决方案

    情景:webQQ登录,使用的是跨站点iframe弹窗登录,发现只有在IE浏览器下,登录存储session不起作用,一刷新页面就登出 分析:IE限制第三方session/cookie 随着IE版本的不断 ...

  6. java iframe 跨域,jsp与iframe跨域访问的一个方法

    前提条件: 假设有两个页面 one.html.two.html. one.html 中有js方法 function one(){}: two.html 中有js方法 function two(){}: ...

  7. IE下iframe跨域session和cookie失效问题的解决方案

    http://blog.csdn.net/wauit/article/details/9875157 转载于:https://www.cnblogs.com/thiaoqueen/p/7590475. ...

  8. iframe 跨越访问_iframe跨域访问

    js跨域是个讨论很多的话题.iframe跨域访问也被研究的很透了. 一般分两种情况: 一. 是同主域下面,不同子域之间的跨域: 同主域,不同子域跨域,设置相同的document.domian就可以解决 ...

  9. 解决Vue跨域访问后端API问题

    文章目录 前言 一.vue.config.js文件 二.配置代理参数 总结 前言 我们在写前后端分离的时候,请求后端接口是必要步骤,但是这个时候就有个问题,因为前端和后端是归属于不同端口,我们在直接访 ...

最新文章

  1. SQL查询从多个表返回数据
  2. java提高篇之数组(2)
  3. 【渝粤教育】国家开放大学2018年秋季 8038-22T实用管理基础 参考试题
  4. 蔚来与雷蛇联合推出NIO ES6限量版车型 售价46.78万元
  5. MAX31855 热电偶至数字输出转换器
  6. python学习笔记第六节(函数,装饰器)
  7. 【输入法】迄今为止,居然有这么多汉字输入法!
  8. GitHub中文排行榜
  9. WSO2身份服务中的关键概念一: 单点登录与身份联合
  10. Opencv求轮廓的中心点坐标
  11. 大型网站架构技术演进(史上最全)
  12. Latex使用本地字体
  13. eclipse软件无法打开的原因
  14. 部分STL_hanhan~
  15. Python 获取本月的最后一天
  16. AutoLisp从入门到放弃(二十一)
  17. 秋招攻略—如何成为一名图像算法攻城狮(上篇)—知识学习篇
  18. 小明的游戏1,小明的游戏5(python)
  19. 7N60-ASEMI低功耗mos管7N60
  20. 如何使用git上传文件到gitee以及大项目文件(超过100MB的文件如传送)remote: error: File: f422c55c723a183a1944cbec840c0171042(超详细)

热门文章

  1. MySQL几个特别语法示例
  2. 自动根据动态的intput计算值
  3. 301重定向的好处:
  4. 全面讲解电脑主板-图文
  5. 学习《Building Applications with FME Objects》 之二 使用Sessions(会话)
  6. Java数据结构2:堆排序思考
  7. linux使用opengl获取纹理id,opengl – 通过纹理id获取纹理目标
  8. hiv实验室抗体筛查流程图_HIV自测都有哪些方法?结果准确么?
  9. python怎么画小海龟_Python 海龟 turtle 画图实战任务(一):让小海龟留下Z字形的足迹以及绘制一个小于号<...
  10. Python中的[:n],[::n],[:,:,n],[...,n]介绍