1

我听说我的网站可能会受到以下黑客的攻击:

  1. 去我的网站开始一个会话。
  2. 不知何故让客户使用相同的会话 ID 访问我的网站
  3. 客户端登录
  4. 当攻击者使用会话 ID 返回我的站点时,他拥有对该客户帐户的完全访问权限。

如果会话 ID 通过 url 传递并且循环它是有意义的(session_regenerate_id),我可以看到这已经完成,但是如果我只使用 session_start 并且我没有在任何时间点将会话 ID 放入 url,这是否需要?

4

2 回答 2

2

除了 session-ID-in-URL 之外,还有会话固定攻击。特别是,浏览器对跨域 cookie 的控制很弱。

如果攻击者可以控制foo.example.com,例如通过在其中运行的应用程序中的 XSS 漏洞,他们可以编写一个带有参数的会话 ID cookie domain=example.com,然后将其传递给运行的应用程序bar.example.com,嘿presto 会话固定。

作为开发人员,您通常无法控制哪些其他易受攻击的应用程序可能在相邻域中运行,因此最好假设可能发生 cookie 注入并在主体更改时回收会话。

于 2015-05-03T09:11:41.337 回答
1

好吧,如果会话 ID 仅通过 cookie 传输(不在 URL 中,并且您不接受 URL 中的 cookie),那么通过回收会话 ID 来防止会话固定攻击就不是那么重要了。

然而,这仍然是一种很好的做法,因为这也有助于防止放置较长时间的会话 cookie(并且可能由以前的用户放置)。因此,对于大多数安全实践来说,这里都是一样的:只要去做,即使你找不到可能被利用的方法。

于 2015-05-02T17:16:42.623 回答