让我们对上图的步骤进行详细说明:
1. 黑客用自己的帐号登录,假设登录页面是:http://www.abc.com/login.jsp
2. 服务器返回登录成功。
3. 黑客从cookie中查看自己的sessionid,比如是1234
4. 黑客把带自己sessionid的地址发送给一般用户。http://www.abc.com/login.jsp;jsessionid=1234(不同的语言带sessionid的方式不一样,着是jsp的方式)
5. 用户在黑客给的地址中用自己的帐号进行登录,登录成功。(这个时候用户登录的信息就会覆盖黑客之前的登录信息,而且2个人用的是同1个sessionid) 6. 黑客刷新页面,看到的账户信息就是用户的信息了,而不是之前黑客自己帐号的信息。
防治:
要防止这种问题,其实也很简单,只要在用户登录时重置session(session.invalidate()方法),然后把登录信息保存到新的session中。
后语:
可能你跟我一样,刚开始看到这个时候,就自己去测试到底能不能钓鱼成功,经过我的测试是可以成功的,但测试过程中需要注意下面几个问题:
1. 要注意你使用的语言是如何在URL中带sessionid。(我测试的时候开始在URL中使用大写的jsessionid,导致一直不起效)
2. 要http://www.abc.com/login.jsp;jsessionid=1234页面登录表单的action也带上了jsessionid,不然也没用。对于这个问题你可能觉得如果login.jsp表单的action是写死,而不是读取当前URL的, 可能就不会出现这个钓鱼问题。这只能防住1个方向。黑客可以做1个和login.jsp一模一样的页面(比如http://www.abc1.com/login.jsp),然后把这个地址发个客户,而这个地址中的表单这样写就可以: <form action="http://www.abc.com/login.jsp;jsessionid=1234" ....
分享到:
相关推荐
tomcat修改sessionId,同一台服务器部署多个tomcat需要修改sessionId,否则会出现session冲突的问题
在处理用户会话时,Tomcat默认使用基于内存的session管理,但这可能导致在高并发场景下session数据丢失或者性能瓶颈。为了解决这些问题,可以将Tomcat的session存储机制改为Memcache,这是一种高效、分布式的内存...
### 设定Tomcat中Session过期时间的三种方式 在Web开发中,Session管理是确保用户状态跟踪的重要机制之一。Tomcat作为一款广泛使用的Java应用服务器及Servlet容器,提供了多种方式来设定Session的有效时长。这有助...
Nginx可以通过配置将Session ID传递给Tomcat,Tomcat再根据ID从Redis中获取Session信息。这样即使服务器发生故障,Session数据也不会丢失。 **4. 使用Redis作为Session存储** 文件名“tomcat-redis-session”暗示了...
Tomcat_Session 的持久化 在 Web 应用程序中,Session 是一种用来跟踪用户状态的机制。Tomcat_Session 的持久化是指将 HttpSession 对象保存到文件系统或数据库中,以便在服务器关闭或重启时可以恢复 Session 数据...
【标题】:“Tomcat Redis Session”指的是在Tomcat集群环境中,通过Redis来实现Session的共享与同步,以解决集群中的Session一致性问题。 【描述】:“Tomcat集群Nginx使用Redis保证Session同步”这一场景中,通常...
标题中的“nginx实现多个tomcat7直接session共享所需jar包”指的是在分布式系统环境中,使用Nginx作为反向代理服务器,将用户请求分发到多个Tomcat7应用服务器上,同时实现用户会话(Session)在这些服务器之间的...
这个实例“tomcat+nginx+redis 实现sessionId共享”旨在教你如何在使用Tomcat作为应用服务器、Nginx作为反向代理服务器的环境中,利用Redis来实现跨服务器的会话(sessionId)共享。这对于在分布式系统中保持用户...
apache-tomcat-7.0.56+nginx-1.8.0+redis-3.0.6集群部署所需JAR包,session共享 tomcat-redis-session-manager1.2.jar jedis-2.6.2.jar tomcat-juli.jar tomcat-juli-adapters.jar commons-pool-1.5.4.jar commons...
对应的sessionid的后缀会变成对应Tomcat的jvmRoute. (以上测试的tomcat均在同一台服务器上) 接下来再配置Apache的mod_jk. workers.properties的内容节选如下: (重点是redirect和activation两个属性) worker....
【Tomcat5 Session 复制详解】 在分布式环境中,保持用户会话(Session)的一致性是至关重要的。Tomcat5 提供了集群(Cluster)功能来实现 Session 的复制,确保用户在不同服务器间的会话状态能够无缝切换。以下是...
此压缩包为tomcat8利用redis实现session共享所需要的jar包,包含(commons-pool2-2.6.0.jar、jedis-2.9.0.jar、tomcat-redis-session-manager.jar)直接将三个jar包复制Tomcat目录lib下面,在修改conf下context.xml...
标题 "Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包" 涉及的是在使用Nginx做负载均衡时,如何通过集成Redis来实现Tomcat7服务器之间的Session共享,从而确保用户在不同服务器之间切换时仍然能够保持...
**Session复制**是通过JK模块在Apache和Tomcat之间传递Session信息,使得用户在集群中的不同Tomcat服务器之间切换时,仍能保持登录状态和其他会话信息。这通常需要在`workers.properties`文件中进行详细配置,并且在...
-- tomcat-redis-session共享配置 --> <Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" /> <Manager className="com.orangefunction.tomcat.redissessions....
linux.tomcat-session共享.redis.安装包
Tomcat作为最常用的Java Servlet容器,其Session管理能力直接影响到应用的性能和可扩展性。本教程将详细介绍如何利用Tomcat 8或9以及Redis实现Session共享,支持Redis集群,以提高系统的可伸缩性和数据一致性。 ...
tomcat session共享 redis
而`tomcat-redis-session-manager-1.2-tomcat-7.jar`则是Tomcat 7的Redis session manager实现。 以下是实现步骤: 1. **配置Redis服务器**:确保你有一个运行中的Redis服务器,可以是本地或者远程。配置好服务器...
博文链接:https://wangxuliangboy.iteye.com/blog/237534