清除 cookie 后是否可能进行 CSRF / 点击劫持?
is CSRF / clickjacking possible after cookies are cleared?
据我了解,CSRF 和点击劫持利用了浏览器在对网页的请求中自动包含 cookie(即来自该域的请求)这一事实。
所以基本上,攻击者会准备一个恶意站点并调用某些 URL(例如 Gmail),希望此 URL 的 cookie 仍保存在我的浏览器中。或者他们能以某种方式找出我当前在另一个选项卡中登录了哪些网页,然后根据这些网页调整攻击吗?
还有我更紧迫的问题:在我清除浏览器缓存或正确注销后,这两种攻击是不可能的,不是吗?
攻击者拥有一个网站并让您访问它(标准 CSRF 场景)通常在最近的浏览器中无法找出您在不同浏览器上打开的其他网站选项卡(尽管有时会出现一些技巧,例如尝试从猜测的网站嵌入经过身份验证的资源并检查它是否会导致错误,表明您未登录 - 经典)。但他们也可以只是猜测并进行盲目攻击——也许他们不知道在特定情况下是否成功,但有时偶尔成功就足够了,不管是哪一个。 CSRF就是CSRF,不管攻击者能否发现它是否有效。这些在更复杂的攻击中仍然可以用作构建块。
至于您的其他问题 - 当然,如果您的浏览器没有发送身份验证信息,CSRF 是不可能的。请注意,这并不严格意味着 cookie,还会为会话保存 HTTP 基本身份验证,并且也会自动发送客户端证书。也许微不足道,但有时非常重要。 :) 另请注意,仅在 UI 上注销并不一定会使 CSRF 无效 - 服务器还需要正确注销您,但情况并非总是如此。举一个简单的例子,考虑 SAML SSO,在这种情况下,您与身份提供者进行长期会话,并与应用程序进行短期会话。您单击注销,您的应用程序会话终止,但可能没有单次注销。当 CSRF 然后尝试使用完整的 http post 之类的东西时,您可能会被重定向到 IdP,然后到应用程序,它可能会自动让您登录,并执行操作 - 无需任何用户交互,从而促进 CSRF。再次可能是边缘情况,但从某种意义上说,这整个事情都是关于边缘情况的。
据我了解,CSRF 和点击劫持利用了浏览器在对网页的请求中自动包含 cookie(即来自该域的请求)这一事实。
所以基本上,攻击者会准备一个恶意站点并调用某些 URL(例如 Gmail),希望此 URL 的 cookie 仍保存在我的浏览器中。或者他们能以某种方式找出我当前在另一个选项卡中登录了哪些网页,然后根据这些网页调整攻击吗?
还有我更紧迫的问题:在我清除浏览器缓存或正确注销后,这两种攻击是不可能的,不是吗?
攻击者拥有一个网站并让您访问它(标准 CSRF 场景)通常在最近的浏览器中无法找出您在不同浏览器上打开的其他网站选项卡(尽管有时会出现一些技巧,例如尝试从猜测的网站嵌入经过身份验证的资源并检查它是否会导致错误,表明您未登录 - 经典)。但他们也可以只是猜测并进行盲目攻击——也许他们不知道在特定情况下是否成功,但有时偶尔成功就足够了,不管是哪一个。 CSRF就是CSRF,不管攻击者能否发现它是否有效。这些在更复杂的攻击中仍然可以用作构建块。
至于您的其他问题 - 当然,如果您的浏览器没有发送身份验证信息,CSRF 是不可能的。请注意,这并不严格意味着 cookie,还会为会话保存 HTTP 基本身份验证,并且也会自动发送客户端证书。也许微不足道,但有时非常重要。 :) 另请注意,仅在 UI 上注销并不一定会使 CSRF 无效 - 服务器还需要正确注销您,但情况并非总是如此。举一个简单的例子,考虑 SAML SSO,在这种情况下,您与身份提供者进行长期会话,并与应用程序进行短期会话。您单击注销,您的应用程序会话终止,但可能没有单次注销。当 CSRF 然后尝试使用完整的 http post 之类的东西时,您可能会被重定向到 IdP,然后到应用程序,它可能会自动让您登录,并执行操作 - 无需任何用户交互,从而促进 CSRF。再次可能是边缘情况,但从某种意义上说,这整个事情都是关于边缘情况的。