CsFire:透明的客户端CSRF缓解方案
1. Web 2.0的考量
防止跨站请求伪造(CSRF)攻击的难度,并非源于攻击本身的特性,而是现代Web 2.0环境中复杂的流量模式。特别是大量使用AJAX、单点登录(SSO)机制或混搭技术(将多个不同网站的内容组合在一起)的网站,很难区分用户的预期流量和非预期或恶意流量。
AJAX和SSO等Web 2.0技术可以得到适当处理,但混搭技术与CSRF攻击极难区分。所提出的解决方案对使用AJAX和SSO的网站没有负面影响,但在依赖隐式认证来构建内容的混搭网站上可能效果不佳。
SSO会话通常会使用多次重定向,从用户正在访问的网站跳转到SSO服务。在这些重定向过程中,会交换认证令牌。当原始网站收到有效的认证令牌时,用户即完成认证。由于这些重定向通常是跨域的,受浏览器中实施的同源策略(SOP)限制,无法使用cookie或HTTP认证头。认证令牌通常会编码在重定向URL中。所开发的扩展程序能够处理这些多次重定向,不会破坏SSO会话。
2. 服务器对更细粒度策略的贡献
此前的策略完全基于客户端可用的信息。但这种策略无法反映Web应用程序的意图,因为在某些情况下可能需要跨域流量。为了获得更细粒度的策略,包含每个站点关于跨域流量的指令,引入了可选的服务器策略。该服务器策略可以收紧或放宽默认的客户端策略。例如,服务器可以禁止任何跨域流量,即使认证信息已被剥离;也可以允许来自某些站点的预期跨域流量。
服务器端策略的技术实现相当直接:服务器在预先确定的位置,使用预先确定的语法定义跨域策略。该策略语法基于JSON,用ABNF元语法语言表示,可在线获取。浏览器扩展程序在客户端检索并解析该策略。策略决
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



