Java会话(HttpSession)是否验证IP地址?

时间:2015-05-08 04:48:07

标签: java session servlets cookies httpsession

使用Java的Servlet API通过HttpSession接口提供的会话管理,创建了一个cookie JSESSIONID。此cookie用于验证用户是否已创建会话。

但是,Servlet是否验证此JSESSIONID值是否来自创建会话的同一台机器?

我知道XSS(跨站点脚本)攻击可以窃取用户的会话cookie,但是当恶意用户将JSESSIONID发送回服务器时,他/她是否能够检索会话内容?或者服务器验证发送JSESSIONID的用户的IP?

4 个答案:

答案 0 :(得分:2)

不,它没有检查同一会话中后续请求之间的ipaddress是否相同。但是,您可以获取该IP地址并使用其他名称保存在会话中,并可以通过您的搜索

进行检查

答案 1 :(得分:1)

为用户创建会话时

  • 在服务器端创建会话ID。
  • 此会话ID将发送给发送请求的浏览器
  • 此ID存储在名为JSESSIONID
  • 的cookie中
  • 浏览器将此Cookie发送给后续请求
  • 服务器知道服务器端的会话ID,并使用cookie中的会话ID进行验证
  • 不检查后续请求的IP地址。使用jsessionid
  • 识别会话

答案 2 :(得分:0)

HTTP是无状态协议,在每个请求中传递JSESSIONID值(以cookie的形式或作为URL参数),以指示服务器请求属于由JSESSIONID值表示的会话。服务器使用JSESSIONID作为密钥维护会话对象,该密钥用于将会话对象与请求相关联。它不保持客户端IP和会话ID之间的关系,如果这是你的意思,那么服务器验证发送JSESSIONID的用户的IP"。因此,它不会对给定的会话ID执行客户端IP验证。

答案 3 :(得分:0)

不,服务器不验证IP地址。这就是为什么会有偷窃会议的原因。并且,Servlet引入了一些措施来避免它们。