何为跨域跨域session/cookie?

也就是第三方session/cookie。第一方session/cookie指的是访客当前访问的网站给访客的浏览器设置的seesion /cookie, 会被存储在访客的计算机上。第三方session/cookie指的是当前访问的网站中会加载(嵌入)另外第三方的网站代码,例如促销广告,那么第三方网 站也会在访客的计算机上添加session/cookie,这种就是第三方session/cookie。

我的问题

在开发讯息在线产品(http://iap.pgia.net)测试各种浏览器的兼容性时,发现IE浏览器(v7\8)都无法登录(总是提示验证码不匹配错误),而其它浏览器无此问题(firefox、百度等)。因此可以断定这和浏览器脱不了干系。

初步分析:

细查发现,在使用IE浏览器(v7\8)访问时,服务器端日志中显示sessionId一直在变化,每次请求都会产生一个全新的sessionId.

显然这是导致无法登录的直接唯一原因,如果解决这个问题则可正常登录。

深入分析:

为什么在IE浏览器(v7\8)上会出现这种情况呢,百度了解后得知:

出于隐私安全的考虑,IE会丢失Iframe中的CookieIE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookieFirefoxChrome 不存在此问题。

我们知道Session 其实就是基于Cookie的。客户端在第一次与服务器建立会话时,会分配给客户端一个随机的sessionId,并存于客户端cookie中,然后在之后的请求中,会带上这个Cookie,如果在客户端找不到这样的Cookie,那么服务器就会重新分配一个。

而我的应用结构恰恰如此,即内置一个iframe嵌入远程应用来实现的。

解决办法:

要解决这个问题就是要在请求时添加“P3P”协议。那么如何实现呢?

在框架页面加入如下代码:

<%
//解决IE7\8跨域访问问题
response.setHeader("P3P","CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\"");%>  

至此,问题已解决

转载于:https://www.cnblogs.com/ranzige/p/session_lost2.html

iframe跨域与session失效问题相关推荐

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

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

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

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

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

    用P3P header解决IE下iframe跨域访问时候session丢失的问题 整合客户的登录时,或者其他一个网站通过iframe时,特别是一个http页面,访问一个https页面时,常常会sess ...

  4. 解决 Iframe跨域session 丢失问题

    解决 Iframe跨域session 丢失问题 参考文章: (1)解决 Iframe跨域session 丢失问题 (2)https://www.cnblogs.com/xumingxiang/arch ...

  5. PHP解决http和https跨域,php中http与https跨域共享session的解决方法

    这篇文章主要介绍了http与https跨域共享session的解决方法,需要的朋友可以参考下 遇到了HTTP.HTTPS协议下session共享解决cookie失效的问题,这里提供一个临时解决办法. ...

  6. iframe跨域请求

    需求: 在一个页面中通过iframe标签签入一个页面,通过操作iframe标签内的页面来切换iframe的页面. 即通过iframe内子页面来调用父页面的方法实现功能,当 两个页面域名不同,要跨域操作 ...

  7. 获取子页面iframe的点击事件及iframe跨域的交互

    1.获取子页面iframe的点击事件 1.1.获取iframe var frame = document.getElementById('addrClick2'); 1.2.获取点击事件 var If ...

  8. js解决iframe跨域问题

    js解决iframe跨域问题 参考文章: (1)js解决iframe跨域问题 (2)https://www.cnblogs.com/qinxuhui/p/12154995.html 备忘一下.

  9. iframe跨域通信的通用解决方案-第二弹!(终极解决方案)

    一年前,我发过一篇关于跨文档通信方案的文章<iframe跨域通信的通用解决方案>,提供了一种基于创建iframe与轮询window.name的方案. 一年后,很高兴地带来彻底改造的新版本. ...

  10. 怎样获取不同域名的ifram的html,AJAX | iframe跨域的实现方法

    iframe跨域 HTML5学堂:本文当中我们介绍了跨域的基本知识,讲解到了跨域的相关种类,并讲解了解决跨域中的一种方法--如何使用iframe跨域.讲解了iframe跨域的基本原理与流程,并配以实战 ...

最新文章

  1. UI第九节——UIProgressView
  2. 教你如何成为数据科学家(六)
  3. python_易忘的简单知识点总结
  4. VTK:Arbitrary3DCursor用法实战
  5. python中的字符串处理
  6. c# 弹性和瞬态故障处理库Polly 学习
  7. 收割百度、阿里、腾讯、头条、网易华为等大厂Offer的面经
  8. 【宋红康程序思想学习日记3】杨辉三角
  9. java 分享巧克力_[leetcode 双周赛 11] 1231 分享巧克力
  10. 移动端点击输入框,弹出键盘,底部被顶起问题(vue)
  11. Python中print()函数不换行的方法
  12. 前端学习笔记day14 移动盒子 封装函数
  13. 通讯录(结尾附全部代码)
  14. Activity启动模式singleTask的理解
  15. 彻底解决电脑空闲时,Win音频设备图形隔离(系统进程)占用CPU的问题
  16. 描绘新十年智慧生活蓝图,AWE2021圆满闭幕
  17. 改写[转载]关闭危险端口的批处理文件FOR WIN7
  18. 邮箱投递简历,如何正确书写正文和主题?
  19. 2016年全国高中数学联赛加试T4分析
  20. 彻底删除已经下载安装好的Mysql

热门文章

  1. django模型篇:一对一、一对多、多对多,添加,批量插入和查询操作
  2. SV fork-join
  3. C#-WebForm-文件上传-FileUpload控件
  4. 电子表格中的数据清洗
  5. 面向对象设计的设计原则
  6. Mysql忘记密码,支持中文,tab补全
  7. 文件系统[HDU-1413]
  8. loadrunner11录制无法打开IE浏览器
  9. 泛函编程(29)-泛函实用结构:Trampoline-不再怕StackOverflow
  10. Kalman Filter 递归算法