我是C的老手,但是是Java / Tomcat的新手。
我只在http中使用Tomcat会话管理就可以了。当我开始考虑切换到https时遇到问题。
我收集了有关Tomcat的信息,如果要在从http切换到https并返回到http时保持会话,则必须从http会话开始。当浏览器启用cookie时,这对我来说工作正常。
但是,当禁用浏览器的Cookie(并且正在使用URL重写)时,将http切换为https或再次将其切换回会导致每次都启动一个新会话。我假设这是安全的事情。
问题1-是否可以/希望使用URL重写在http和https之间维持会话?
问题2-如果不可能,那么电子商务开发人员如何处理非cookie用户?
我不想阻止非Cookie的人使用我的网站。我确实希望在http和https之间切换一些灵活性。
感谢您的帮助,史蒂文。
使用相同的cookie或URL令牌维护HTTP和HTTPS之间的会话似乎并不理想。
想象一下您的用户登录的情况,对于电子商务网站中的每个请求/响应,来回传递给定的cookie(或URL令牌)。如果中间的人能够读取该cookie,则可以使用它登录到该站点的HTTP或HTTPS变体。即使合法用户随后通过HTTPS进行操作,攻击者仍将能够访问该会话(因为他也将拥有合法cookie)。他可以看到购物车,付款方式之类的页面,或者更改送货地址。
在HTTP会话和HTTPS会话之间传递某种形式的令牌(如果您使用的是会话)是有意义的,但是将它们视为一个令牌并且将它们视为相同会导致一些漏洞。在查询参数中创建一次性标记,只是过渡可能是一种解决方案。但是,您应该将它们视为两个单独的经过身份验证的会话。
有时,使用混合HTTP和HTTPS内容的网站可能会发生此漏洞(某些浏览器(例如Firefox)会在发生这种情况时向您发出警告,尽管大多数人倾向于在第一次弹出时将其禁用)。您可以在主页上使用HTTPS会话cookie,但是该页面包含使用纯HTTP的公司徽标的图像。不幸的是,浏览器会同时发送两个Cookie(这样攻击者便可以使用Cookie)。我已经看到了这种情况的发生,即使所讨论的图像甚至不存在(浏览器会将带有cookie的请求发送到服务器,即使它返回了404都没有找到)。