如何在以API为中心的Web应用程序中防止CSRF

时间:2018-01-19 22:00:57

标签: rest security api-design csrf-protection

我希望使用以API为中心的架构构建一个Web应用程序。

应用程序的前端将使用AJAX向REST API发出请求。

其他客户也将API用于各种目的。我认为使用CSRF令牌可能不适用于它们的实施。

其他方法包括验证标题中的原点,但当然,标题很容易被欺骗。

我如何为此应用程序实施强大的CSRF预防策略?

1 个答案:

答案 0 :(得分:1)

一些命题:首先您可以使用像GET api/gime-csrf这样的api-url将CSRF令牌作为响应返回,并将其设置在http-only cookie中(因此JS无法访问它 - 但请记住阻止TRACE在服务器中请求以防止XST攻击)。然后,当您进行一些“保存状态”请求(如POST / PUT / PATCH)时 - 您只需将CSRF放入某个请求标头中 - 并在服务器中将标头标记值与Cookie标记值进行比较。