跟踪模式SSL与COOKIE有什么好处?

时间:2018-02-27 18:09:57

标签: session tomcat jsf-2 session-cookies

我正在创建一个部署在Tomcat / EE中的JSF应用程序(使用CLIENTCERT)。默认情况下,jsessionid(使用SecureRandom生成,因此看起来很安全)是在网址中设置的,我通过更改security reasons来禁用SessionTrackingMode

现在我试图找到使用的安全优势/劣势:

<tracking-mode>SSL</tracking-mode><tracking-mode>COOKIE</tracking-mode>

(考虑到安全性几乎总是对性能和其他变量产生影响)。可能其中一个问题是我不知道SSL跟踪模式究竟做了什么。 This API documentation不是很清楚。

我应该何时使用其中一种?

PS:我知道这不是Tomcat或JSF的特定内容,但我需要给出问题的上下文

2 个答案:

答案 0 :(得分:6)

我建议在SSL会话跟踪中使用基于cookie的会话跟踪,原因如下:

  1. 使用SSL会话跟踪可能会阻止显式(用户启动)注销
  2. 使用SSL会话跟踪可能会阻止会话因不活动超时而终止
  3. 使用SSL会话跟踪可能会导致意外注销(由于TLS重新协商,这会更改TLS会话ID)
  4. 使用SSL会话跟踪将使调试,故障排除以及通常在必要时操纵您自己的应用程序变得更加困难(告诉客户清除他们的cookie比要求他们使他们的TLS会话过期更容易且更不神秘)< / LI>

    FWIW,IBM WebSphere has dropped support for SSL-based session-tracking,版本7.0(大约2008年)。

    我没有看到使用基于SSL的会话跟踪的任何优势。

答案 1 :(得分:1)

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

  • 如果您的应用未使用客户端证书,则使用 Cookie 可能会更方便。原因是克里斯托弗指出会议可能导致会议无效。我没有测试过这个,但这只是一个理论上的印象。
  • 如果使用客户端证书,我已验证通过SSL连接的跟踪会话完全有效。我已经这样做了一段时间,我没有发现任何问题,也没有发现意外的错误/注销,也没有用户必须再次登录的繁琐过程。在我看来,在某些情况下,SSL甚至可能是一种更清洁的方式 会话。请注意,开发人员可能必须保持一定的安全性 使用Cookie时的注意事项(例如HttpOnlycookie secure flag ...)。我不是说这是选择SSL的原因 跟踪,因为开发人员可能必须保持一定的安全性 SSL跟踪会话的注意事项,我只是说我是 目前还没有意识到它们,而我知道那些饼干。
  • 如果您选择使用SSL跟踪,而您正在使用 JSF (Java EE),例如@ViewScoped,然后在使用不安全的HTTP时会遇到问题,因为如果没有TLS / SSL,JSF将无法跟踪会话。因此,如果您需要具有需要跟踪会话的范围的JSF,并且需要对您的应用程序进行HTTP访问,那么您应该进行COOKIE跟踪。另一方面,如果您始终使用HTTPS,或者不需要例如@ViewScoped,然后SSL跟踪完全正常。