我看到的每个(c / x)srf保护实现都是通过以下流程完成的:

  • 服务器在客户端使用令牌实现cookie,

  • 客户端发送带有从cookie读取的值的X-XSRF-TOKEN标头 .

实施第1点不同是否安全?而是发送cookie,在服务器响应中发送令牌(例如 Headers )?

为什么我要实现这种方式是我的REST API由两个应用程序使用:

单页应用程序 - 用Angular 2和Native应用程序编写 - 用电子书写(也用Angolar 2)

浏览器应用程序托管在与API相同的URL下,因此检索cookie值没有问题 . 但是使用电子(原生)应用程序我遇到了问题,当试图访问cookie值时(这是不可能的,因为cookie由不同的主机设置,然后应用程序正在运行 - 默认情况下,电子应用程序从原点运行 file:// for OSX ie ) .

解决此问题的另一种方法是发送cookie,而不是X-XSRF-TOKEN标头 .

哪种方法会更好?或者也许有一些不同的方法来保护CSRF与本机应用程序

PS:我的所有请求都是在身份验证过程之后完成的并且包含Baerer令牌 .