Apache能够使用TLS会话ID而不是querystring中的会话cookie或JSESSIONID。我的网站到处都是HTTPS。
这似乎很有用,因为我不必担心会话cookie被盗,并且可以为不执行cookie的用户代理使用会话。
我对这里的会议劫持/固定有免疫力吗?
还有其他值得关注的问题吗?
发布于 2015-02-21 23:31:58
SSL会话ID是明文的,对任何在网络上看到比特的人都是可见的。如果你担心劫持,这不是个好主意。
发布于 2015-02-22 01:16:41
我想你指的是RFC 4507中指定的TLS会话ID
不,我不认为这能满足你的需要。TLS会话ID是服务器向客户端提供的票据,它将允许客户端在后一时间(即在现有会话停止后)恢复会话。这主要集中在TLS层,您可以将其看作应用程序层下面的一个层。TLS层完全是关于建立安全连接的,对您的应用程序级别一无所知。
当您第一次连接到启用了TLS的服务时,服务器和客户端之间有一个握手过程,用于建立安全连接。通过使用会话ID,可以减少后续连接中的握手过程--通过提供有效的会话ID,客户端实际上是在说“嘿,让我们重新连接,使用我们上次使用的加密密钥等等。服务器可能会说”嘿酷,让我们走“,或者它可能会说,”对不起,太长了,我们需要重新协商“。
由于这是应用程序下面的一个层,TLS会话ID不知道您是否通过应用程序进行身份验证,或者您的授权级别是什么。通常,这只会在TLS连接谈判和建立之后才会发生。不能将此信息添加到TLS会话ID,因为这是服务器端TLS层生成的加密值。这也意味着应用程序无法从TLS会话ID中确定用户凭据。
如果您的用户需要经过身份验证和授权,您确实需要在应用程序级别的会话或cookie中管理它,您需要能够验证它没有被修改,并且需要包括额外的保护,例如CSRF保护令牌,并且您需要在每个请求中验证所有这些。
https://security.stackexchange.com/questions/82174
复制相似问题