我听说我的网站可能会受到以下黑客的攻击:
- 去我的网站开始一个会话。
- 不知何故让客户使用相同的会话 ID 访问我的网站
- 客户端登录
- 当攻击者使用会话 ID 返回我的站点时,他拥有对该客户帐户的完全访问权限。
如果会话 ID 通过 url 传递并且循环它是有意义的(session_regenerate_id),我可以看到这已经完成,但是如果我只使用 session_start 并且我没有在任何时间点将会话 ID 放入 url,这是否需要?
我听说我的网站可能会受到以下黑客的攻击:
如果会话 ID 通过 url 传递并且循环它是有意义的(session_regenerate_id),我可以看到这已经完成,但是如果我只使用 session_start 并且我没有在任何时间点将会话 ID 放入 url,这是否需要?
除了 session-ID-in-URL 之外,还有会话固定攻击。特别是,浏览器对跨域 cookie 的控制很弱。
如果攻击者可以控制foo.example.com,例如通过在其中运行的应用程序中的 XSS 漏洞,他们可以编写一个带有参数的会话 ID cookie domain=example.com,然后将其传递给运行的应用程序bar.example.com,嘿presto 会话固定。
作为开发人员,您通常无法控制哪些其他易受攻击的应用程序可能在相邻域中运行,因此最好假设可能发生 cookie 注入并在主体更改时回收会话。
好吧,如果会话 ID 仅通过 cookie 传输(不在 URL 中,并且您不接受 URL 中的 cookie),那么通过回收会话 ID 来防止会话固定攻击就不是那么重要了。
然而,这仍然是一种很好的做法,因为这也有助于防止放置较长时间的会话 cookie(并且可能由以前的用户放置)。因此,对于大多数安全实践来说,这里都是一样的:只要去做,即使你找不到可能被利用的方法。