【发布时间】:2011-04-13 12:34:12
【问题描述】:
我已经对此进行了一段时间的调查,但我没有找到任何可以满足我好奇心的东西。如果禁用 cookie,作为用户是否有可能成为 CSRF 攻击的受害者。显然,CSRF 依赖于用户的浏览器将用户的凭据与伪造的请求一起发送到合法服务器。除了 IP 地址,浏览器不会自动发送任何其他会话值,不是吗?在这种情况下,只要用户可以在禁用 cookie 的情况下登录,即使在易受攻击的网站上,他们也不会受到 CSRF 的影响。
【问题讨论】:
我已经对此进行了一段时间的调查,但我没有找到任何可以满足我好奇心的东西。如果禁用 cookie,作为用户是否有可能成为 CSRF 攻击的受害者。显然,CSRF 依赖于用户的浏览器将用户的凭据与伪造的请求一起发送到合法服务器。除了 IP 地址,浏览器不会自动发送任何其他会话值,不是吗?在这种情况下,只要用户可以在禁用 cookie 的情况下登录,即使在易受攻击的网站上,他们也不会受到 CSRF 的影响。
【问题讨论】:
所以,您必须问自己,服务器如何从另一个客户端知道一个客户端?在大多数情况下,它是会话 cookie,但也有其他方式。
考虑一个管理应用程序,它被配置为仅在从 localhost 访问时才能工作。在这里,服务器信任浏览器的 IP 地址。现在,如果攻击者创建了一个类似<img src="http://localhost/do/something/harmful"/> 的页面,并以某种方式让管理员访问他的页面,那么您就有了一个 CSRF。
正如 Bruno 已经指出的那样,其他示例包括滥用 Http 基本身份验证和摘要身份验证。
【讨论】:
浏览器还支持其他形式的身份验证,特别是 HTTP Basic 和 HTTP Digest,以及 SSL/TLS 客户端证书。不幸的是,使用这些机制时“注销”的界面通常很差。与 cookie 和表单不同,停止使用凭据由浏览器控制(而不是由服务器及其 cookie 控制),但这些按钮通常最多位于某些高级菜单中(如果它们存在的话)。
【讨论】: