龙卷风的XSRF保护

时间:2013-07-11 14:46:57

标签: python cookies tornado csrf

我正在使用Facebook的Tornado Web引擎来进行我正在进行的项目,并计划实施XSRF保护,但这让我有些困惑。

在一个典型的请求中,如果找不到它,它会向用户的浏览器设置一个“_xsrf”cookie,然后将其与浏览器随请求发送的HTML表单值中嵌入的值相匹配。

嗯,让我们说攻击者做了这样的事情:

<img src="blah.com/transfer_money?account=0098&destination=0099&_xsrf=
(whatever the client's cookie contains)" title="cool image" />

什么是阻止攻击者彻底使用cookie?据我所知,用于XSRF的cookie不是check_xsrf_cookie method and the xsrf_token method that actually generates the XSRF token的“安全”。我错过了什么......?

1 个答案:

答案 0 :(得分:4)

如果我理解正确,您就会问是什么阻止攻击者访问给定域中的用户cookie。

答案是:浏览器安全政策。来自一个域的脚本无法从其他域访问cookie(大多数情况下)。更多详情:http://en.wikipedia.org/wiki/HTTP_cookie#Domain_and_Path

使用XSS (Cross-Site Scripting)攻击可以避免这种情况:将脚本直接注入受攻击页面的源代码中。另一种方法是破解客户端应用程序(浏览器)。

但是,大多数情况下,攻击者无法从其他域检索用户的cookie。额外的安全级别是将特定CSRF(或“ XSRF ”)令牌与特定用户相关联(并在验证期间进行检查)。