使用Java的Servlet API通过HttpSession接口提供的会话管理,创建了一个cookie JSESSIONID。此cookie用于验证用户是否已创建会话。
但是,Servlet是否验证此JSESSIONID值是否来自创建会话的同一台机器?
我知道XSS(跨站点脚本)攻击可以窃取用户的会话cookie,但是当恶意用户将JSESSIONID发送回服务器时,他/她是否能够检索会话内容?或者服务器验证发送JSESSIONID的用户的IP?
答案 0 :(得分:2)
不,它没有检查同一会话中后续请求之间的ipaddress是否相同。但是,您可以获取该IP地址并使用其他名称保存在会话中,并可以通过您的搜索
进行检查答案 1 :(得分:1)
为用户创建会话时
答案 2 :(得分:0)
HTTP是无状态协议,在每个请求中传递JSESSIONID值(以cookie的形式或作为URL参数),以指示服务器请求属于由JSESSIONID值表示的会话。服务器使用JSESSIONID作为密钥维护会话对象,该密钥用于将会话对象与请求相关联。它不保持客户端IP和会话ID之间的关系,如果这是你的意思,那么服务器验证发送JSESSIONID的用户的IP"。因此,它不会对给定的会话ID执行客户端IP验证。
答案 3 :(得分:0)
不,服务器不验证IP地址。这就是为什么会有偷窃会议的原因。并且,Servlet引入了一些措施来避免它们。