7

我注意到 stackoverflow 仅在登录页面上使用 SSL,并且可以通过 HTTP 发布问题/答案。

用户必须登录才能做到这一点,所以我想知道如果没有使用 SSL,stackoverflow 如何设法跟踪哪些用户已登录。

目前我正在制作一个 Rails 应用程序,它使用 cookie 跟踪登录状态。我一直认为您需要 SSL 才能安全地做到这一点。但我以登录用户身份通过​​ HTTP 发布此内容。

当我运行tcpdump -i eth0 -A然后访问 stackoverflow 时,我注意到一个名为“usr”的 cookie,并且该 cookie 以纯文本形式传输,没有 SSL。如果我通过不安全的连接(如 wifi 咖啡馆)登录,黑客/数据包嗅探器能否获取我的 usr cookie 并重播我的会话?

我想避免在我的 Rails 应用程序中使用 SSL(因为我的主机要为实现它负责),所以我想使用与 stackoverflow 相同的技术。我想让用户保持登录状态,而不使用 SSL。

我猜这里正在使用数据库(或 memcache/redis)会话存储。但肯定还是需要某种 cookie 吗?为什么这些 cookie 不必通过 SSL 发送?后台是否发生了其他事情,使这些 cookie 对不同机器上的黑客来说是多余的?

4

1 回答 1

1

这是我认为会发生的事情或您可以在应用程序中使用的事情。当用户通过您的登录页面登录时,您会创建两种不同类型的 cookie。您创建第二个 cookie,以便将其专门发送回 HTTPS 页面,并且所有其他页面(包括 HTTP 和 HTTPS)可以使用第一个 cookie(用户会话 cookie)来维护会话和所有包含安全信息的页面用户专有的将使用第二个 HTTPS cookie..

通过这种方式,可以仅使用会话 cookie 来查看喜欢的页面,但是当您想要查看用户信息页面时,您使用第二个 HTTPS cookie。

希望这有点道理。

于 2012-07-14T22:28:56.910 回答