我正在努力设置可靠且高性能的解决方案来与不同的微服务进行前端通信。我现在不知道如何在我的前端和终端服务之间维护(可能不需要)CSRF
解决方案堆栈:PHP,Laravel Passport,JWT,oAuth 2.0,Axios
目前的做法: 实际上我已经开始接受Laravel的护照了 https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript
我的担忧:
关于James Ward的帖子: http://www.jamesward.com/2013/05/13/securing-single-page-apps-and-rest-services
在不冒CSRF风险的情况下进行身份验证的最简单方法 漏洞就是简单地避免使用cookie来识别用户。
Cookie本身不是CSRF漏洞的原因。它的 使用服务器上的cookie来验证导致原因的用户 CSRF只是将身份验证令牌放入cookie中就不行了 意味着它必须被用作识别用户的机制。
根据我的理解设置JWT与网站A的cookie及其域集无法通过外部的任何其他网站访问。由于没有可能的方法在不访问JWT的情况下向B服务请求。
那么我们真的需要CSRF然后在使用JWT时确保对服务B的潜在攻击吗?
如果是这样,我怎样才能达到通过不同服务生成CSRF的最佳方式(以高效率方式),以确保通信不会受到来自不同站点的攻击?
任何建议都将不胜感激!