Java 在cookie中保存会话id的概念是什么?

Java 在cookie中保存会话id的概念是什么?,java,cookies,web-applications,session-cookies,Java,Cookies,Web Applications,Session Cookies,我正在为一家企业开发一个安全网站。我希望它完全安全,不受所有已知漏洞的影响。我遇到过创建安全cookie和启用HTTPOnly的情况,但在那个例子中,他们使用cookie值作为会话Id。我不明白。不使用这种方式会造成威胁吗?您需要将会话id发送到客户端并返回到服务器,以便将来自该客户端的请求匹配到会话 AFAIK只有两种方式可以传递会话id:作为cookie或作为参数(在大多数情况下,必须是url参数才能支持get请求)。通过参数发送会话id是一个漏洞,因为攻击者可以提供带有预起草会话id(会话

我正在为一家企业开发一个安全网站。我希望它完全安全,不受所有已知漏洞的影响。我遇到过创建安全cookie和启用HTTPOnly的情况,但在那个例子中,他们使用cookie值作为会话Id。我不明白。不使用这种方式会造成威胁吗?

您需要将会话id发送到客户端并返回到服务器,以便将来自该客户端的请求匹配到会话

AFAIK只有两种方式可以传递会话id:作为cookie或作为参数(在大多数情况下,必须是url参数才能支持get请求)。通过参数发送会话id是一个漏洞,因为攻击者可以提供带有预起草会话id(会话固定)的链接,而对Cookie执行相同操作至少是困难的(如果不是不可能的话)


不过,通过url参数发送会话id不仅是一个安全问题。假设有人复制url并将其发送给某人(“嘿,看看这个”)或将其发布到web上的某个位置。只要会话存在,访问该链接的每个人都将彼此使用相同的会话和iterfere。诚然,无论会话(ip、mac地址等)如何,都有办法识别用户,但这些措施通常不可行或施加其他限制(例如,您将如何处理漫游移动用户?)。

您是在问我们吗?为什么您认为这会是一种威胁?是的,我需要知道在cookie中发送会话id的动机,因为会话id可以从会话本身获取。如果您没有会话id(例如在cookie中),您认为如何从中检索会话和id?神奇的是?会话将由tomcat服务器管理,使用请求参数我可以获得会话?正如下面的Thomas所说,在请求参数中传递sessionid是个坏主意。此外,如果你在cookie中有sessionid,你也不会把它作为参数传递。非常感谢你的精彩解释。然后,您说我应该使用java servlet中cookie传递的会话id创建一个会话,并且应该使用创建的会话id进行进一步操作。@user2695448如果您需要在应用程序中访问会话,那么您应该在cookie中传递会话id,并根据cookie值将每个请求与该会话关联-这通常应该已经由Tomcat等标准web服务器处理。。如果您不需要会话,即所有内容都是只读的,或者您的应用程序将整个视图状态/会话传递给客户端并返回,那么您就不需要这样做。