【问题标题】:Is CSRF possible without Cookies?如果没有 Cookie,CSRF 是否可行?
【发布时间】:2011-04-13 12:34:12
【问题描述】:

我已经对此进行了一段时间的调查,但我没有找到任何可以满足我好奇心的东西。如果禁用 cookie,作为用户是否有可能成为 CSRF 攻击的受害者。显然,CSRF 依赖于用户的浏览器将用户的凭据与伪造的请求一起发送到合法服务器。除了 IP 地址,浏览器不会自动发送任何其他会话值,不是吗?在这种情况下,只要用户可以在禁用 cookie 的情况下登录,即使在易受攻击的网站上,他们也不会受到 CSRF 的影响。

【问题讨论】:

    标签: http cookies csrf


    【解决方案1】:

    所以,您必须问自己,服务器如何从另一个客户端知道一个客户端?在大多数情况下,它是会话 cookie,但也有其他方式。

    考虑一个管理应用程序,它被配置为仅在从 localhost 访问时才能工作。在这里,服务器信任浏览器的 IP 地址。现在,如果攻击者创建了一个类似<img src="http://localhost/do/something/harmful"/> 的页面,并以某种方式让管理员访问他的页面,那么您就有了一个 CSRF。

    正如 Bruno 已经指出的那样,其他示例包括滥用 Http 基本身份验证和摘要身份验证。

    【讨论】:

    • IMO,只要受害者的浏览器有一个活动会话或一个活动访问令牌(通过 WebStorage、cookie、RAM 或其他),CSRF 就会假设该站点不使用旨在防止 CSRF 的同步令牌。
    【解决方案2】:

    浏览器还支持其他形式的身份验证,特别是 HTTP Basic 和 HTTP Digest,以及 SSL/TLS 客户端证书。不幸的是,使用这些机制时“注销”的界面通常很差。与 cookie 和表单不同,停止使用凭据由浏览器控制(而不是由服务器及其 cookie 控制),但这些按钮通常最多位于某些高级菜单中(如果它们存在的话)。

    【讨论】:

    • 那么,如果用户在他们的浏览器中禁用 cookie,典型的替代方案是 HTTP 身份验证或简单地通过表单传递会话 ID?
    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 2015-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2019-01-16
    • 1970-01-01
    • 2012-05-31
    相关资源
    最近更新 更多