0

据我了解,CSRF 和 Clickjacking 使用浏览器自动在对网页的请求(即来自该域的请求)中包含 cookie 的事实。

所以基本上,攻击者会准备一个恶意站点并调用某个 URL(例如 Gmail),希望这个 URL 的 cookie 仍然保存在我的浏览器中。或者他们能以某种方式找出我当前在另一个选项卡中登录了哪些网页,然后针对此调整他们的攻击?

还有一个更紧迫的问题:在我清除浏览器缓存或正确注销后,这两种攻击是不可能的,不是吗?

4

1 回答 1

1

拥有一个网站并让您访问它(标准 CSRF 场景)的攻击者通常无法在最近的浏览器中找出您在不同浏览器选项卡上打开的其他网站(尽管不时会出现一些技巧,例如示例尝试从猜测的网站嵌入经过身份验证的资源并检查它是否导致错误,表明您未登录 - 经典)。但他们也可以只是猜测并进行盲目攻击——也许他们不知道在特定情况下是否成功,但有时如果偶尔成功就足够了,不管是哪一次。CSRF 就是 CSRF,不管攻击者是否能发现它是否有效。这些仍然可以作为构建块在更复杂的攻击中有用。

至于您的其他问题-当然,如果您的浏览器没有发送身份验证信息,则 CSRF 是不可能的. 请注意,这并不严格意味着 cookie,还会为会话保存 HTTP 基本身份验证,并且客户端证书也会自动发送。也许是微不足道的,但有时非常重要。:) 另请注意,简单地在 UI 上注销并不一定会使 CSRF 无效 - 服务器还需要正确注销您,但情况并非总是如此。举一个简单的例子,考虑 SAML SSO,其中您与身份提供者进行了长期会话,并与应用程序进行了短期会话。您单击注销,您的应用程序会话被终止,但可能没有单次注销。当 CSRF 然后尝试使用完整的 http 帖子之类的东西时,您可能会被重定向到 IdP,然后到应用程序,该应用程序可能会自动让您登录并执行操作 - 无需任何用户交互,从而促进 CSRF。

于 2019-01-15T23:15:19.730 回答