Stackoverflow如何通过HTTP保持用户登录?

ste*_*och 7 cookies ssl session-cookies session-hijacking

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

用户必须登录才能这样做,所以我想知道如果没有使用SSL,stackoverflow如何设法跟踪登录的用户.

目前我正在制作一个rails应用程序,它使用cookie跟踪登录状态.我一直认为你需要SSL来安全地做到这一点.但我是通过HTTP发布的,作为登录用户.

当我运行tcpdump -i eth0 -A然后访问stackoverflow时,我注意到一个名为'usr'的cookie ,并且该cookie以明文传输,没有SSL.如果我通过不安全的连接登录,如无线网吧,黑客/数据包嗅探器可以带我的usr cookie,并重播我的会话吗?

我想避免在我的rails应用程序中使用SSL(因为我的主机充电臂和腿来实现它),所以我想使用与stackoverflow相同的技术.我希望让用户无需SSL即可登录.

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

Baz*_*nga 1

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

通过这种方式,只需使用会话 cookie 即可查看此类页面,但当您想要查看用户信息页面时,您可以使用第二个 HTTPS cookie。

希望这是有道理的。