繁体   English   中英

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

[英]Does a Java session (HttpSession) validate IP addresses?

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

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

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

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

为用户创建会话时

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM