我听说我的网站可能会受到黑客的攻击:
- 转到我的网站开始会话。
- 以某种方式让客户访问我的网站,并使用同一会话ID
- 客户端登录
- 当攻击者带有会话ID回到我的网站时,他可以完全访问该客户帐户。
我可以看到,如果url传递了会话ID,并且循环循环是有意义的(session_regenerate_id),但是如果我只使用session_start,并且在任何时候都不会将会话ID放入URL中,这是否需要及时?
除了session-in-in-url以外,还有其他会话固定攻击。特别是,浏览器对跨域饼干的控制很弱。
如果攻击者可以控制foo.example.com
,例如,通过在那里运行的应用程序中的XSS孔,他们可以用参数domain=example.com
编写会话ID cookie,然后将其传递给您在bar.example.com
和Hey Presto上运行的应用程序会话固定。
作为开发人员,您通常无法控制其他脆弱应用程序可能在邻居域运行的应用程序,因此最好假设Cookie注入可能会发生并在PrincPal Change上进行回收。
好吧,如果会话ID仅由cookie传输(不在URL中,并且您不接受URL中的ID),那么防止会话固定并不重要通过回收会话ID来攻击。
但是,这仍然是一个很好的做法,因为这也可能有助于防止会话cookie延长了更长的时间(并且可能由前用户放置)。因此,通过大多数安全惯例,这里都是一样的:只要做到,即使您找不到方法可能会被利用。