session - 跟踪模式 SSL 与 COOKIE 相比有何优势?

标签 session tomcat jsf-2 session-cookies

我正在创建一个部署在 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 跟踪:

  1. 使用 SSL session 跟踪可以防止显式(用户启动的)注销
  2. 使用 SSL session 跟踪可以防止 session 因不活动超时而终止
  3. 使用 SSL session 跟踪可能会导致意外注销(由于 TLS 重新协商会更改 TLS session ID)
  4. 使用 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/

相关文章:

ruby - 如何设置 session [:expires] in rack session (Sinatra)

java - Tomcat 持久和用户特定的 session 计数器

java - 当我在导航栏中单击某个项目时如何重定向到另一个页面

java - 带有 ajax 更新的 JSF selectOneButton - setter 调用 2 次

java - 使用 JSF 自动完成 Eclipse xhtml

session - 在 JWT 中存储什么?

java - Tomcat 6 集群配置是否有 useDirtyFlag 选项?

php - 根据使用 session 选择的行获取数据

jakarta-ee - 在Tomcat6.0中出现 "The requested resource () is not available."

java - JSP - 使用参数重定向或重写 (POST)