android - 在 NodeJS 服务器中解决 csrf 和身份验证问题的最佳方法
问题描述
我是 Web 服务器开发的新手。我正在开发一个 NodeJS Web 服务器,它同时服务于 Web(AngularJS/ReactJS)和本机移动应用程序(Android)。我的项目中有一个用户特定的功能。
我很困惑,花了几个小时寻找与 csrf 和身份验证相关的安全问题。
我的问题是
1) 我应该使用哪种方法来解决Web 和移动应用程序中的csrf 和身份验证问题?- 是JWT(JSON Web 令牌)还是Express JS 中的CSURF中间件。
请详细解释。
如果有其他方法请提及。
提前致谢。
解决方案
JWT 应该适用于身份验证和 csrf 保护。您可以使用 jwt 来存储 csrf 令牌。将 JWT 存储在安全的 http-only cookie 中,并将 csrf 令牌存储在会话存储中。然后验证 jwt 中的令牌与请求发送的 csrf 令牌是否匹配。此外,您可以在后期使用 JWT 进行授权。
您还可以查看使用 jwt 进行反 csrf 保护的 jwt-csrf。它用于 anti-csrf 令牌的默认方法是双重提交,但它也支持其他方法。