2012-02-24 78 views
3

我只是好奇。我看到了会话ID正在更新的方法。我知道会话的重要性,但我没有得到的是为什么会话ID正在更新。SESSION ID:为什么需要更新?

在CodeIgniter(PHP框架)中,默认情况下会话ID每5分钟更新一次。这是我们在这里讨论的安全问题吗?只是想知道。感谢无论谁回答! :)

+0

防止['session-fixation'](http://en.wikipedia.org/wiki/Session_fixation)等等。 – Wrikken 2012-02-24 12:27:55

回答

2

它必须经常更新。

可以说你登录到一些在线烘焙网站。当然你有一个独特的会话ID会话。但是,如果不经常更新,有人可以使用一些XSS技巧来获取会话ID,将您的会话ID插入到他的浏览器中,然后poof!他使用您的凭据登录!

和服务器将永远不会知道你不再是谁了,因为他使用了你自己的会话ID,所以访问这个站点的人是谁。

http://en.wikipedia.org/wiki/Session_hijacking

+0

这实际上是我一开始就在想的。感谢您的验证。 :) – user979023 2012-02-29 16:06:45

0

的主要原因是为了防止会话劫持。在这个维基百科article上列出了劫持会话的方法。到prevent session fixation,这篇文章很好。

通过刷新会话ID,任何被盗的会话ID对攻击者来说都不会很有用。在您的示例中,窃取会话ID可能需要超过5分钟的时间,在此之后,由于它已过期而无用。

通过窃取您的会话ID,攻击者将承担您的身份并执行您允许执行的任何操作。

0

重新生成会话ID的原因之一是防止会话劫持。

会话劫持是指黑客了解用户的会话ID, 并用它来假装他是该用户。

有关更多详细信息,请参见此PHP Security guide

相关问题