不,它不是同义词。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 令牌也不是一个好主意。