我在所有接受用户输入的视图中使用 Anti forgery token html 帮助程序,并在相关操作方法上使用 [ValidateAntiForgeryToken] 以防止任何可能的 CSRF 攻击。但是我面临一个问题,即如何测试这些代码行是否运行良好,它们将防止任何可能的攻击。BR
问问题
499 次
1 回答
1
您可以编写一个可以在任何地方托管的静态 HTML 页面。甚至不需要网络服务器,您可以使用file:///c:/foo.htm
例如。在此 HTML 页面中,创建一个简单<form>
的输入元素(相同的名称),作为您想要针对 CSRF 测试的一些 ASP.NET MVC 视图。表单的action
将指向与您的 ASP.NET MVC 视图相同的操作。然后提交表格。如果抛出 AntiForgeryToken 异常,您是安全的。另一方面,如果执行控制器操作,则您很容易受到 CSRF 攻击。
要了解有关 CSRF 的更多信息,请查看以下文章。杰夫阿特伍德也写了一篇关于它的博客。
并且不要仅仅期望你会运行一些神奇的工具,它会显示绿灯或红灯。如果存在这样的工具,黑客就不会存在,因为所有网站都将受到保护,他们将没有任何东西可以破解。
确保您的站点安全的最佳方法是咨询将执行广泛审计和代码审查的安全专家。
于 2012-01-19T22:05:16.057 回答