首页 > 解决方案 > 在 NodeJS 服务器中解决 csrf 和身份验证问题的最佳方法

问题描述

我是 Web 服务器开发的新手。我正在开发一个 NodeJS Web 服务器,它同时服务于 Web(AngularJS/ReactJS)和本机移动应用程序(Android)。我的项目中有一个用户特定的功能。

我很困惑,花了几个小时寻找与 csrf 和身份验证相关的安全问题。

我的问题是

1) 我应该使用哪种方法来解决Web 和移动应用程序中的csrf 和身份验证问题?- 是JWT(JSON Web 令牌)还是Express JS 中的CSURF中间件。

请详细解释。

如果有其他方法请提及。

提前致谢。

标签: androidnode.jswebjwtcsrf

解决方案


JWT 应该适用于身份验证和 csrf 保护。您可以使用 jwt 来存储 csrf 令牌。将 JWT 存储在安全的 http-only cookie 中,并将 csrf 令牌存储在会话存储中。然后验证 jwt 中的令牌与请求发送的 csrf 令牌是否匹配。此外,您可以在后期使用 JWT 进行授权。

您还可以查看使用 jwt 进行反 csrf 保护的 jwt-csrf。它用于 anti-csrf 令牌的默认方法是双重提交,但它也支持其他方法。

https://www.npmjs.com/package/jwt-csrf


推荐阅读