Session 跟踪模式SSL与COOKIE相比有哪些优势?

Session 跟踪模式SSL与COOKIE相比有哪些优势?,session,tomcat,jsf-2,session-cookies,Session,Tomcat,Jsf 2,Session Cookies,我正在创建一个部署在Tomcat/EE中的JSF应用程序(使用CLIENTCERTs)。默认情况下,在URL中设置了jsessionid(生成时使用了,因此看起来很安全),我通过更改 现在,我正试图找出使用以下方法的安全优势/劣势: SSLvs.COOKIE (考虑到安全性几乎总是会影响性能和其他变量)。可能其中一个问题是,我不知道SSL跟踪模式到底做什么。不太清楚 我什么时候应该使用其中一种 PS:我知道这不是Tomcat或JSF的特例,但我需要给出问题的上下文,我建议使用基于cookie的会

我正在创建一个部署在Tomcat/EE中的JSF应用程序(使用CLIENTCERTs)。默认情况下,在URL中设置了
jsessionid
(生成时使用了,因此看起来很安全),我通过更改

现在,我正试图找出使用以下方法的安全优势/劣势:

SSL
vs.
COOKIE

(考虑到安全性几乎总是会影响性能和其他变量)。可能其中一个问题是,我不知道SSL跟踪模式到底做什么。不太清楚

我什么时候应该使用其中一种


PS:我知道这不是Tomcat或JSF的特例,但我需要给出问题的上下文,我建议使用基于cookie的会话跟踪而不是SSL会话跟踪,原因如下:

  • 使用SSL会话跟踪可能会阻止显式(用户发起的)注销
  • 使用SSL会话跟踪可能会防止由于非活动超时而终止会话
  • 使用SSL会话跟踪可能会导致意外注销(由于TLS重新协商,这会更改TLS会话id)
  • 使用SSL会话跟踪将使调试、故障排除变得更加困难,并在必要时操作您自己的应用程序(告诉客户机清除cookie比让他们终止TLS会话ID更容易,也不那么神秘)
  • FWIW,IBM WebSphere自7.0版起(大约2008年)


    我认为使用基于SSL的会话跟踪没有任何好处。

    我想在@Christopher Schultz的回答中添加一些细节

    • 如果您的应用程序未使用客户端证书,则使用cookies可能更方便。正如克里斯托弗所指出的,原因是会话可能无效。不过,我没有测试过这一点,这只是一个理论印象
    • 如果使用了客户端证书,我已经验证了通过SSL连接跟踪会话是完全有效的。我已经这样做了一段时间,我没有发现任何问题,也没有发现意外的错误/注销,也没有发现用户必须再次登录的繁琐过程。在我看来,在某些情况下,SSL甚至可能是一种更干净的方式来保持 会议。请注意,开发人员可能需要保持一些安全性 使用cookie时的注意事项(例如…)。我并不是说这是选择SSL的理由 跟踪,因为开发人员可能需要保持一些安全性 关于SSL跟踪会话的注意事项,我只是说我是 目前还不知道,而我知道的饼干的
    • 如果您选择SSL跟踪,并且正在使用JSF(Java EE)和例如
      @ViewScoped
      s,则在使用不安全的HTTP时会出现问题,因为如果没有TLS/SSL,JSF将无法跟踪会话。因此,如果您需要JSF和需要跟踪会话的作用域,并且需要对应用程序进行HTTP访问,那么您应该进行COOKIE跟踪。另一方面,如果您总是使用HTTPS,或者不需要使用,例如
      @ViewScoped
      ,那么SSL跟踪完全可以

    一般来说,这很有用。然而,我想看看这是否真的适用于我的情况。。。我使用的是客户端证书,因此[1]只有在用户关闭浏览器时才没有明确的“注销”。[2] 没有实时超时,因为只要浏览器打开,会话就处于活动状态。[3] 强制注销只会要求用户再次选择一个证书(有点烦人,但不是灾难性的)[4]这实际上是适用的。据我所知,只有第4点可以证明SSL上的cookie是正确的。还有其他原因吗?另外,我试图找到WebSphere的原因,但没有成功。我真的想不出任何其他原因。我的经验是,基于SSL的会话跟踪很少在野外使用,所以当你问问题时,你可能会耸耸肩,就像你在这里和我一样。使用客户端证书进行身份验证绝对是一个重要的信息,一开始我显然忽略了这一点,但是(HTTP)会话与经过身份验证的用户不同,因此它们会超时等。如果用户(或应用程序)不必再次登录,但他们的(HTTP)会话可能会让他们感到困惑会话超时,会话中意外丢失了一些内容。通过询问Tomcat用户的邮件列表,您可以获得更好的反馈,由于那里的用户和管理员比较集中,他们可能对基于客户端证书的身份验证以及该身份验证策略对会话跟踪策略的影响有意见。谢谢,这非常有帮助。我将等待几周,看看是否有其他人有答案,否则我将标记这作为解决方案哈!非安全HTTP。。。太离奇了。:)关于TLS证书不能在非安全HTTP上工作这一点很好。听起来很愚蠢,但是如果您的会话跟踪机制需要TLS,而您允许使用会话的不安全(比如预认证)访问,那么您可能会遇到麻烦。