`

iframe跨域导致session丢失

 
阅读更多
问题描述:
   在一个应用(domain: A)的某个page中, 通过IFrame的方式嵌入另一个应用(domain: B)的某个页面. 当两个应用的domain
不一样时, 在被嵌入的页面中不允许使用cookie(即使用cookie实现的session会失效).

问题分析:
   在XP SP2和IE6之后,从安全性角度考虑,默认状态下不允许在iframe里使用跨站点cookie。


解决方案:
   1. 修改Client的设置
    使Client可以接受来自任何网站的Cookie(具体设置在IE选项的隐私页中)(测试通过).
   或者将两个domain都设置为受信息站点(测试通过).

   2. 应用的domain修改
    简单方案: 两个应用使用同一个domain(没有测试).
   复杂方案: 可以在iframe加载的页面里通过setdomain来强制更改(没有测试).

   3. P3P
   第一种: 在要嵌入的内容中(iframe指向的站点)输出P3P的主机头声明,步骤如下:
> 打开IIS管理器 inetmgr
> 选择被嵌入iframe源站点或者目录,右键点击打开属性框
> 切换到HTTP头
> 添加
> 自定义HTTP头名: P3P
> 自定义HTTP头值: CP="CAO PSA OUR"
> 关闭属性框退出,即刻生效

   第二种: 在被嵌入页面page_onload里添加一语句:response.addHeader("P3P","CP=CAO PSA OUR")(测试通过);
分享到:
评论

相关推荐

    iframe跨域访问时session丢失

    NULL 博文链接:https://thoreau.iteye.com/blog/745100

    PHP关于IE下的iframe跨域导致session丢失问题解决方法

    总的来说,针对IE浏览器中iframe跨域导致Session丢失的问题,关键在于理解浏览器对跨域Cookie的处理方式,特别是IE的独特限制。通过设置P3P头,可以通知浏览器允许iframe内的页面使用和共享Session,从而修复登录和...

    【ASP.NET编程知识】iframe跨域与session失效问题的解决办法.docx

    在 ASP.NET 开发中,跨域和 Session 失效问题是一个常见的问题,特别是在使用 iframe 嵌入远程应用时。今天,我们来讨论这个问题的解决办法。 什么是跨域和 Session 失效? -------------------------------- 跨域...

    iframe跨域与session失效问题的解决办法

    通过这种方式,可以解决在IE浏览器中由于P3P隐私设置导致的iframe跨域cookie丢失问题,进而解决session失效导致的用户频繁重新登录的问题。这个方法在技术上是可行的,但需要网站管理员操作,确保P3P声明符合实际的...

    关于Iframe如何跨域访问Cookie和Session的解决方法

    本文主要探讨如何解决Iframe跨域访问Cookie和Session的问题。 首先,理解跨域访问的基本概念。在Web浏览器的安全策略中,同源策略(Same-origin policy)禁止了一个源(协议+域名+端口)的文档或脚本直接获取另一个...

    iframe跨域嵌套自适应高度

    ### iframe跨域嵌套自适应高度 在网页开发过程中,`iframe`作为一种常见的网页元素,被广泛用于在当前页面中嵌入另一个独立的文档或页面。然而,在实际应用中经常会遇到一些问题,如跨域限制、自适应高度调整以及...

    服务器session丢失

    然而,Session丢失可能导致用户体验下降,如用户在未登出的情况下被迫重新登录。 【描述】中提到的主要原因包括: 1. **应用程序池问题**:如果多个网站共用同一个应用程序池,Session可能会相互干扰,导致丢失。 2...

    解决前后端分离 vue+springboot 跨域 session+cookie失效问题

    首先发现sessionID不一致,导致每一次都是新的会话,当然不可能存在用户了。然后发现cookie浏览器不能自动保存,服务器响应set-cookie了 搜索问题,发现跨域,服务器响应的setCookie浏览器无法保存,而且就算保存了...

    iframe嵌入链接本地环境正常,正式环境重定向到登录解决

    - **Session丢失**:正式环境中,由于跨域请求或其他原因,服务器无法正确识别用户的Session信息,从而自动跳转至登录页面。 #### 解决方案 为了解决这个问题,可以通过以下步骤进行: 1. **协议一致性处理**:确保...

    php session_start()出错原因分析及解决方法

    - **PHP在IE下的iframe跨域session丢失问题**:由于浏览器同源策略,跨域会导致会话丢失,可以通过设置 P3P 头部或使用共享域名的 cookie 来解决。 - **Failed to write session data** 错误:这通常是因为临时...

    ajax跨域访问遇到的问题及解决方案

    2. **Session丢失**:跨域请求无法携带Cookie,导致服务器端的Session无法正常工作。 3. **CORS(跨源资源共享)未开启**:如果目标服务器没有配置CORS策略,即使服务器返回了数据,浏览器也会因为安全原因拒绝解析...

    jsessionid存在的问题及其解决方案

    在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...

    页面间传值

    Local Storage持久化存储数据,关闭浏览器也不会丢失,而Session Storage仅在当前会话有效。它们提供键值对存储,容量比Cookie大,但同样不能用于跨域,且数据安全性较低。 5. HTML5 History API: History API...

    2022年前端工程师最新面试题

    - iframe用于在页面中嵌入另一个页面,但可能导致性能问题,不利于SEO,且存在安全风险。 17. **DOCTYPE**: - 声明文档类型,影响浏览器的解析模式,严格模式遵循HTML标准,混杂模式则兼容旧版浏览器。 18. **...

    前端、vue、react、js面试题

    - IFrame用于在页面内嵌入其他页面,但可能导致性能问题和安全风险,如XSS攻击。 17. **DOCTYPE**: - DOCTYPE声明指定文档类型和遵循的HTML或XHTML规范,影响文档的解析模式,严格模式遵循标准,混杂模式兼容旧...

Global site tag (gtag.js) - Google Analytics