我正在创建一个部署在 Tomcat/EE 中的 JSF 应用程序(带有 CLIENTCERT)。默认情况下,jsessionid
(用 SecureRandom 生成,所以它看起来很安全)在 URL 中设置,我为 security reasons 禁用了它通过更改 SessionTrackingMode .
现在我正试图找到使用的安全优势/劣势:
<tracking-mode>SSL</tracking-mode>
与 <tracking-mode>COOKIE</tracking-mode>
(考虑到安全性几乎总是会对性能和其他变量产生影响)。可能的问题之一是我不知道 SSL 跟踪模式到底是做什么的。 This API documentation不是很清楚。
我什么时候应该使用其中之一?
PS:我知道这不是 Tomcat 或 JSF 特有的,但我需要提供问题的上下文
最佳答案
出于以下几个原因,我建议使用基于 cookie 的 session 跟踪而不是 SSL session 跟踪:
- 使用 SSL session 跟踪可以防止显式(用户启动的)注销
- 使用 SSL session 跟踪可以防止 session 因不活动超时而终止
- 使用 SSL session 跟踪可能会导致意外注销(由于 TLS 重新协商会更改 TLS session ID)
- 使用 SSL session 跟踪将使调试、故障排除和在必要时通常操纵您自己的应用程序变得更加困难(告诉客户清除他们的 cookie 比要求他们使他们的 TLS session ID 过期更容易和更神秘)
FWIW,IBM WebSphere has dropped support for SSL-based session-tracking从 7.0 版开始(大约 2008 年)。
我看不出使用基于 SSL 的 session 跟踪有任何优势。
关于session - 跟踪模式 SSL 与 COOKIE 相比有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49015255/