会话固定VS XSRF / CSRF

时间:2015-03-18 13:43:11

标签: php security session owasp

两者分别定义了什么?

会话固定被描述为:

  

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

来源:OWASP

这似乎与CSRF利用的内容相当接近。这两者之间的区别是什么,或Session fixation只是来自CSRF的同义词或分支?

还要提一下,我提供的OWASP链接的关键术语几乎与CSRF中提到的那些相同

1 个答案:

答案 0 :(得分:4)

不,它不是同义词。会话固定和CSRF是两种不同的攻击。<​​/ p>

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

CSRF 是另一种攻击。攻击者不希望受害者会话ID,而是让受害者在受害者正确登录的服务器上执行操作。因此,受害者本身会执行恶意操作但不知道它。怎么样?受害者在某个地方加载一个包含恶意链接的页面(即img src)或目标网站包含XSS漏洞,这是加载外部恶意javascript和发出ajax请求的好点。

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

Look at OWASP for more info to CSRF