在Angular中通过Router状态传递数据安全吗



我最近了解了在路由器组件之间传递数据的方法,如下所示:

this._router.navigate(['page2'], {state : {myObject : this.secretInfo }});

然后读取这样的数据:

window.history.state

以这种方式传递敏感数据安全吗?

有没有什么方法可以让人们只需查看JS源代码就可以读取数据?

不,我认为这根本不是一种安全的做法。看起来window.history.state是内置在浏览器中的东西,而不是特定于Angular(请参阅Mozilla文档(,您只需在console.log中调用它就可以访问它的所有属性。任何用户都可以很容易地调出检查器并查看数据——不仅可以查看数据,还可以更改数据!

此外,在任何前端应用程序中,您永远不会有">秘密数据"-即使在Angular中也是如此。这里有一个很好的Stack Exchange问题,说明为什么会这样。如果你有想要保密或锁定的数据,你需要将其锁定在服务器的后端。例如,仅向特定用户显示用户的数据,该特定用户是"用户">登录";在您的服务器上。

除此之外,这并不是在Angular组件中的管线之间传递数据的唯一方法。如果你感兴趣,这里有一个很好的SO问题,评论中提到了一篇文章,介绍了不同的方法:http://www.angulartutorial.net/2017/12/3-simple-ways-to-share-data-through.html

相关内容

  • 没有找到相关文章

最新更新