会话固定 VS XSRF/CSRF

Jux*_*hin 6 php security session owasp

什么分别定义了两者?

会话固定描述为:

会话固定是一种允许攻击者劫持有效用户会话的攻击。该攻击探索了 Web 应用程序管理会话 ID 方式的限制,更具体地说是易受攻击的 Web 应用程序。`

资料来源:OWASP

这似乎与 CSRF 所利用的相当接近。两者的区别是什么Session fixation仅仅是来自CSRF的同义词或分支?

还想提一下,来自我提供的 OWASP 链接的关键术语与 CSRF 中提到的几乎相同

kba*_*kba 7

不,它不是同义词。Session Fixation 和 CSRF 是两种不同的攻击。

会话固定是一类会话劫持。攻击者试图窃取、猜测或修复会话 ID,然后使用它并以受害者身份登录目标网站。它可以通过多种方式完成。基本保护是如果应用程序使用 httpOnly 标志,不会在 url (session.use_trans_sid=0, session.use_only_cookies=1) 中传输会话 ID,并处理 XSS 漏洞。

CSRF是另一种攻击。攻击者不想要受害者会话 id,而是让受害者在受害者正确登录的服务器上执行操作。因此受害者自己执行恶意操作但并不知道它。如何?受害者在某处加载包含 html 中恶意链接的页面(即 img src)或目标网站包含 XSS 漏洞,这是加载外部恶意 javascript 和发出 ajax 请求的好点。

标准保护是 CSRF 令牌。它是包含在每个敏感请求中的另一个令牌(会话 ID 的下一个)。攻击者不应该知道特定用户当前的 CSRF 令牌,也不能准备恶意链接或 ajax 请求。CSRF 令牌对于每个会话应该是唯一的。敏感请求是表单提交、删除/设置某些内容(权限等)。所以应用程序不必绝对保护每个请求。在 URL 中传输 CSRF 令牌也不是一个好主意。

查看 OWASP 以获取更多关于 CSRF 的信息