我正在使用Node.js、react和Redux开发一个具有登录功能的管理员页面。
对于登录,我使用了jwt。我的问题是,使用这个安全吗?因为,我在应用程序周围的商店中设置了Provider。在内部,我检查user.isauthenticated()
然后adminpage
是否为loginpage
。
让我担心的是商店。它在登录页面和管理页面中是同一个商店。因此,我可以从登录页面访问连接到管理员页面的商店。
有两个独立的商店不是更安全吗?
前端没有任何东西是"安全的"。真正的问题是如何在后端处理身份验证/授权。JWT绝对是一种安全的身份验证方法,但请记住,任何人都可以对有效载荷进行解码,因此存储在JWT中的任何信息对任何可以访问令牌的人都是可见的。
安全考虑是:用户是否可以使用您的前端服务进行身份验证,然后使用该令牌从您的后端访问在某种程度上不属于他们的信息?如果你已经正确构建了后端,那么你的前端商店将无法泄露任何信息,因为他们将无法获得用户尚未被授权查看/编辑的任何信息。
前端安全需要记住的一个场景:用户登录,专有数据由您的前端应用程序存储(无论是redux/localstorage/etc(。当该用户注销时,如果该数据仍在存储中,另一个用户是否可以登录并以某种方式查看它?希望不会。你的注销方法应该从前端应用程序中删除任何敏感数据,这样任何未来的用户都无法访问它
我希望这能有所帮助。我可能没有直接讨论redux,但这是因为安全性主要是后端问题。不应该依赖Redux来保护数据安全,除非它从未经授权的用户稍后可能访问的区域永久删除内容。