`

iframe应用session丢失的问题

    博客分类:
  • Java
阅读更多

在网站群的建设中,各子站需要共享主站的footer等公共信息。同时主站的后台管理也集成了各子站的管理,采取的方式是使用iframe嵌入各站的页面。在本机开发环境中,没有出现任何的问题。但是一放到测试环境中,便遇到session丢失的问题。
        环境:应用服务器采用tomcat6.0,各个站点单独使用一个应用服务器,部署在一台物理服务器上。外部访问采用同一个IP,但是不同的端口。
       起初以为,IE它的安全策略默认是会把iframe中的页面站点认为是不可信任的,它会阻止该站点传过来的cookie(如果你在iframe中的URL 跳转是用的localhost,则不会被阻挡),所以因为没法使用cookie了,session便失效了。解决的方法是在过滤器,或者被嵌入的页面内加 入属性为P3P的header信息。java为:response.addHeader("P3P","CP=CAO PSA OUR");但是依然没有成功。网上的解决方案都是这么说,况且自己以前还弄过,都成功过,这次怎么弄都不好。
        今天脑子安静下来,仔细的分析这里面的原因。如果是IE的安全限制,但是火狐、google浏览器没有这样的限制,为什么这两个浏览器也出现这样的情况。 这肯定不仅仅和跨域引起的P3P的安全问题有关。于是在本机测试,通过iframe引入测试环境中的链接,设置了P3P,发现一切正常。这就更说明了,测 试环境中的问题绝对不是P3P的问题了。而且使用了同一个IP,也应该没有跨域的说法。那原因到底是什么呢?
        慢慢的,我将视线注意到了端口上。这些网站的访问方式都是:同一IP+不同端口,难道和端口有关系。上网搜,关于这方面的内容太少了,但是总算在零星的资 源中,找到了里面的原因。IP相同的两个session对应的cookie是一样的,而不幸的是sessionID就保存在cookie中,这样先访问 A,再访问B的时候,B的sessionid会覆盖A的sessionid。这个事情没办法解决,所以你不要搞两个端口,最好是搞两个IP。原来都是 cookie惹的祸,它不会区分端口,造成这多个站点不断的后来的覆盖前面的,从而造成session的丢失。问题解决了,将相互有引用的应用架构在不同 的虚拟主机中,或者映射不同的IP。

分享到:
评论

相关推荐

    IFrame中Session丢失的解决办法

    设置`mode`属性为`StateServer`,并指定`stateConnectionString`,这使得Session数据不在本地存储,而是通过TCP/IP连接到一个独立的State Server服务,从而避免了由于IFrame环境导致的Session丢失问题。 2. **调整...

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

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

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

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

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

    综上所述,这些知识点揭示了在使用iframe跨域嵌套时可能遇到的session丢失问题,并给出了相应的解决方法。开发者在面对这类问题时,应积极查找文档、进行测试,并及时找到适用的解决方案,以保证应用的正常运行。...

    服务器session丢失

    【服务器Session丢失】...总之,处理服务器Session丢失问题需要综合考虑多种因素,包括应用程序配置、服务器环境和代码实现。通过仔细排查和优化,可以有效减少Session丢失的情况,从而提供更稳定、更顺畅的用户体验。

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

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

    iframe跨域嵌套自适应高度

    本文将详细介绍如何实现`iframe`跨域嵌套下的自适应高度调整,并讨论如何解决因跨域嵌套而可能引起的`session`丢失问题。 #### 一、`iframe`自适应高度原理与实现 1. **基本概念**: - **`iframe`**:`iframe`即...

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

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

    asp之让Session永不过期

    默认情况下,IIS会在无请求20分钟后关闭工作进程,导致Session丢失。因此,需要调整IIS的“回收工作进程(分钟)”设置,取消自动回收或者设置一个非常大的值。 在IIS管理器的应用程序池中,可以在“回收”选项卡...

    JSP中基于Session的在线用户统计分析

    2. **持续刷新机制**:这种策略通常用于框架结构的网站,通过一个Frame或隐藏的iframe持续刷新,保持Session活跃。例如,xici.net就采用了这种方式,它可以实现类似服务器推送的功能,如用户间的消息传递。但这也...

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

    本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来阐述如何在实际应用中处理这些问题。 首先,`jsessionid`是Java Servlet容器为了跟踪用户...

    页面间传值

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

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

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

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

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

    前端、vue、react、js面试题

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

    回发后如何维护FileUpload控件的状态

    为了解决这个问题,我们需要采取一些策略来维护FileUpload控件的状态。以下是一些方法: 1. 使用PostBackUrl属性:FileUpload控件有一个PostBackUrl属性,可以设置为一个单独的处理文件上传的页面。这样,当用户...

    DWR.xml配置文件说明书(含源码)

    “scope参数允许你配置creator的生命周期,共有以下几个选项:application,session,request,page.这些参数对于用过jsp或servlet的开发人员并不陌生. 3.1 Uing static methods 如果你想远程调用一个creator的静态方法,...

Global site tag (gtag.js) - Google Analytics