2010-04-05 248 views
3

我要去线槽OWASP十大名单20072010你如何防止特定CSRF攻击

我偶然发现了跨站点请求伪造(CSRF),因为您让用户使用他的会话来实现您的愿望,所以这通常称为会话骑乘。

现在,解决方案是为每个网址添加一个令牌,并为每个链接检查此令牌。

例如,要对产品进行投票X的网址是:

'http://mysite.com?token=HVBKJNKL' 

这看起来像一个坚实的解决方案,因为黑客无法猜测令牌。

但是我想以下情形(我不知道是否有可能)的:

您创建与隐藏的iframe或DIV网站。之后,您可以使用普通的iFrame或ajax加载我的网站。

当我的网站加载隐藏在您的网站内,并且用户有存储会话时,可以完成以下操作。您可以从URLS中检索令牌,并仍然执行所需的所有操作。

是否有可能做这样的事情。或者是不可能做这个跨域。

回答

5

您所描述的攻击明显违反了Same Origin Policy。 ,iframe的inherit privileges这样。许多绕过相同的原产地政策已被发现。这些问题得到解决的唯一方法是由人们提问这样的问题。我强烈建议您尝试编写代码来绕过问题,即使它失败了。最糟糕的情况是,你会学到一些重要的东西,最好的情况下,你会发现一个问题,张贴到bugtraq,并举办派对:)。 Oah和所有人都会为错误修复更安全。

XSS可用于绕过特定易受攻击站点的相同来源策略提供的保护。 XSS漏洞可用于使用XmlHttpRequest读取XSRF令牌。 Here是这样写的一个漏洞。

+0

好吧我会用一些使用我自己的网站的例子来调查这一点。我会看看提供的代码,并在接下来的几天内汇报我的发现。 – 2010-04-05 18:11:03

+0

@Saif Bechan非常酷,祝你好运!) – rook 2010-04-05 18:14:54

+1

@The Rook - 只是一个小的技术性更正。 XSS可以击败任何XSRF保护,但不会绕过相同的原产地政策。至少不是技术上的。使用XSS,攻击者代码从同一个域运行,所以它不违反SOP。 – 2010-04-05 18:31:23

0

这种情况并不是真的可能是因为虽然他们可以构建到http://mysite.com,但他们需要令牌将帧设置为http://mysite.com?token=HVBKJNKL。如果他们有令牌,那么反正你不安全。

+0

好的,但他们在主网站的iframe中有mysite.com。在主网站上,他们可以使用jQuery等获得链接$('#link')。attr('href')并从中减去该标记。并将此令牌附加到主网站中想要的每个链接。 – 2010-04-05 17:41:54

+0

他们不能。即使它位于iframe中,相同的来源策略也不会允许其网站访问您的html。 – 2010-04-05 19:10:50