要解决此问题,您可以使用第二个非持久性cookie来充当可以控制其值的会话ID。这个想法是生成一个唯一的id并将其存储在cookie和会话中。通过使用invalidate,对此cookie实施与尝试对会话执行的逻辑相同的逻辑。具体来说,在身份验证成功之前,不要发布将来的请求将接受的实际标识符。然后创建一个Servlet筛选器,该Servlet筛选器将检查每个请求并将该新cookie的值与会话中存储的值进行匹配。如果它们不匹配,则表明存在恶意行为。我知道这比仅依靠
session.invalidate()发布新的ID
还要麻烦。但是考虑到您的约束和JRun的行为,这将为会话固定提供足够的保护。



