`
totoxian
  • 浏览: 1073610 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

不可靠的SESSION

 
阅读更多

不可靠的SESSION

左直拳

SESSION不可靠。

按道理讲,使用Session.Abandon,当前会话就应该死翘翘,彻底消失。使用Session.Clear或Session.RemoveAll,内容也应该被铲除。但事实并非如此,在使用过程中,有时会遇到本应消失(用Abandon强行终止)或被替换了的SESSION借尸还魂,僵而不死的情况,时不时的跳出来,吓人一跳。但又不是次次如此,有时行,有时不行,直到生命期限过了才算罢休。

这些僵尸从哪来?真不知道,试了很长时间都找不到原因。

后来用了个办法改善。

存储信息的时候,设个类似ID之类的信息,分别存放在两个地方,一个是SESSION,一个是COOKIE。当读取这个会话的时候,则从会话和COOKIE中拿出ID比对,如果相符则会话合法,否则认为这个是僵尸。

之后就没有看到再有僵尸出现。

分享到:
评论

相关推荐

    在WCF中实现可靠Session的测试代码

    代码中实现了在 WCF 中实现可靠 Session 的测试用例,其中也涉及到如何将一个 WCF 服务发布到 IIS 中,目前唯一不能确定的就是在 NLB 的环境中是否也可以实现可靠 Session ,如果哪位网友有这样的资料,也希望共享...

    spring session redis分布式session

    Spring Session结合Redis为分布式系统提供了一种高效、可靠的Session管理方式。通过自定义Session,我们可以根据业务需求调整Session的行为,确保在复杂环境下满足系统的稳定性和可扩展性。在实际项目中,根据具体...

    iframe 跨域访问session

    6. **服务器端代理**:最安全且可靠的方法是不在客户端处理跨域`session`,而是通过服务器端的代理。例如,服务器可以接收来自`iframe`的请求,然后转发到实际的目标,并在响应中包含`session`信息。 在提供的文件...

    session共享 memcached-session-manager 1.9.6 jar

    在IT行业中,尤其是在Web应用程序开发中,Session共享是解决多服务器间用户状态一致性的重要技术。...通过正确配置和使用这个库,开发者可以避免因session不共享导致的问题,提升应用的性能和可靠性。

    Session丢失原因和解决方案

    由于这些进程可能会因多种原因重启,导致Session数据丢失,因此在处理高可用性或需要跨应用程序共享Session数据时,这种模式并不理想。 ASP.NET Session丢失的原因主要包括: 1. **进程重启**:如上所述,进程重启...

    在asp.net中使用session常见问题集锦

    综上所述,理解并解决ASP.NET中Session的问题对于构建稳定可靠的Web应用至关重要。开发者需要深入了解Session的工作原理及其配置选项,以便能够有效地管理Session状态,提高应用的性能和用户体验。

    tomcat-redis-session-manager

    在Web应用开发中,session管理是不可或缺的一部分,它用于存储用户状态信息,确保用户在不同页面间保持登录状态。然而,随着分布式系统的普及,单个服务器的session管理已无法满足需求。这时,我们需要将session数据...

    session入redis

    在讨论将Session存储到Redis之前,先要理解...需要注意的是,虽然利用Redis作为Session存储是一个非常有效的策略,但也需要关注Redis本身的高可用、数据一致性和持久化等方面的问题,确保Session数据的安全和可靠性。

    zookeeper实现分布式session sample

    - Zookeeper不适合存储大量数据,因此session信息应尽量简洁。 - 需要考虑网络延迟和Zookeeper的可用性,确保session的实时性和可靠性。 - 必要时,需要对session的读写操作进行同步控制,防止数据冲突。 通过...

    集群redis实现session共享jar包之tomcat8

    在单台服务器环境下,session数据保存在服务器内存中,但在集群环境中,由于多台服务器无法直接访问彼此的内存,如果不进行特殊处理,会导致用户在不同服务器间切换时丢失session信息,严重影响用户体验。...

    tomcat7集群实现session共享

    这种方式简单易用,但可能导致大量网络通信,不适用于大规模集群。 2. **Shared Memory**:这种方法利用共享内存区域在服务器之间共享session数据,减少了网络通信,但可能受到操作系统限制和并发问题的影响。 3. ...

    PHP基于memcahe的session方法重写

    在PHP开发中,Session管理是不可或缺的一部分,尤其是在大型分布式系统中。传统的session存储方式,如文件或数据库,可能...在实际应用中,还可以结合负载均衡器、故障转移策略等进一步优化session的可用性和可靠性。

    session的应用

    【Session的应用】 Session在Web开发中扮演着关键的角色,它是维持用户会话状态的一种机制...同时,考虑到性能和可用性,可以采用分布式Session存储方案,将Session数据分散到多个服务器,以提高系统的扩展性和可靠性。

    PHP中session全面教程.txt

    ### PHP中的Session全面教程 #### 一、Session概念与作用 ...了解并掌握如何在PHP中正确地使用Session,对于构建安全可靠的Web应用至关重要。希望本文能够帮助您更好地理解和运用PHP中的Session机制。

    Hibernate_Session_Transaction

    在Java的持久化框架Hibernate中,`...理解并正确使用这两个接口是进行高效、可靠的Hibernate编程的关键。在实际应用中,应根据业务需求和性能考虑,合理地管理`Session`和`Transaction`,确保数据的完整性和一致性。

    Tomcat7+Redis+Session

    在现代Web应用程序开发中,Session管理是不可或缺的一部分,它允许服务器跟踪用户状态。在高并发和分布式环境中,传统基于内存的Session管理方式(如Tomcat默认的Session管理)可能会面临性能瓶颈和数据一致性问题。...

    tomcat-redis-session-manager的jar包-包含Tomcat7和Tomcat8

    总结起来,Tomcat-Redis-Session-Manager通过整合Redis和Tomcat,实现了高效、可靠的session管理,特别适用于需要处理高并发和分布式部署的Web应用。其提供的jar包简化了集成过程,让开发者能快速地在Tomcat7和...

    tomcat集群实现session复制

    虽然不常见,但也可以通过文件系统来实现Session数据的共享。每个Tomcat实例将Session数据写入到一个共享文件系统中,如NFS挂载点,从而实现数据的复制。 ### 实战配置示例:使用Memcached进行Session复制 下面的...

    session实现登录工程

    在IT行业中,Web开发是不可或缺的一部分,而用户认证与授权是Web应用的核心功能之一。"Session实现登录工程"就是这样一个主题,它涉及到如何利用...通过合理地设计和实施这些机制,我们可以构建出安全可靠的Web应用。

    HibernateSession , Transaction 研究

    4. `load()`和`get()`:用于根据主键加载对象,前者如果对象不存在则抛出异常,后者返回null。 5. `query()`和`createCriteria()`:创建查询或Criteria查询,用于检索数据。 接下来,我们探讨`Transaction`。在...

Global site tag (gtag.js) - Google Analytics