2009-04-17 77 views

回答

0

您需要了解CSRF如何完成。深入黑客的思维方式。然后您需要创建执行CSRF的自动化测试。这可能不是一个单元测试(测试一个单元),更像是一个集成测试。当你成功地执行CSRF攻击 - 当你的测试是红色的时候 - 你就可以解决这个问题。

查看CSRF FAQ了解如何执行攻击的更多信息。这里有一篇很好的关于Testing for CSRF的wiki文章,你应该看看。

1

CSRF是一种攻击,其中用户被欺骗(例如通过电子邮件中的链接)代表攻击者执行操作,同时已在您的网站上进行身份验证。

有几种方法来减少你应该测试的风险 -

  • GET请求不应该有副作用 - 所有操作只应使用POST请求来完成。攻击者更难以生成源自用户的POST请求。
  • 您希望随机发送一个唯一的每页字符串给用户,并在返回服务器时进行检查。用户的cookie将在由攻击者引起的请求中发送,但攻击者不会知道存储在表单中的字符串。在.NET中,我认为你可以使用Viewstate。
  • 对于特别敏感(或攻击俯卧)行为或一段时间无操作后,可以通过向用户请求重复认证

OWASP(由Torbjørn联)的确是一个很好的资源,它包含更详细的说明和建议。