您如何防范特定的CSRF攻击

时间:2010-04-05 17:32:59

标签: security csrf owasp

我将通过20072010 OWASP排行榜前10名

我偶然发现Cross Site Request Forgery(CSRF)这通常被称为会话骑行,因为您让用户使用他的会话来实现您的愿望。

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

例如,对产品x进行投票,网址为:

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

这看起来像是一个可靠的解决方案,因为黑客无法猜出令牌。

但我在考虑以下情况( 我不知道是否可能 ):

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

如果您的网站隐藏在您的网站中,并且用户已存储会话,则可以执行以下操作。您可以从URLS检索令牌,并仍然执行所需的所有操作。

是否可以做这样的事情。或者是否无法跨域进行此操作。

2 个答案:

答案 0 :(得分:5)

您所描述的攻击明显违反了Same Origin Policy。 ,iframe不以这种方式inherit privileges。已发现许多绕过同一原产地政策的旁路。解决这些问题的唯一方法是人们提出这样的问题。我敦促你尝试编写代码来绕过这个问题,即使它失败了。最糟糕的情况是你会学到一些重要的东西,最好的情况是你会发现一个问题,把它发布到bugtraq,并举办派对:)。哦,每个人都会更安全地修复错误。

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

答案 1 :(得分:0)

这种情况实际上并不是因为虽然他们可以框架到http://mysite.com,但他们需要令牌才能使其框架为http://mysite.com?token=HVBKJNKL。如果他们有令牌那么你就不安全了。