繁体   English   中英

Web应用程序:我应该发送回给用户什么?

[英]Web application : What should I send back to the user?

我正在编写一个Web应用程序-前端使用angularJS,REST API和mongodb作为后端。 由node.js驱动。

问题的背景:

我知道我需要使用基于令牌的身份验证来对我的用户进行身份验证,然后我需要让此令牌可用于以后的每个新请求。 我还需要能够保留用户ID,以便以后在数据库上进行事务处理。

我使用该策略的主要问题是,这意味着取回令牌后,需要在登录后保留令牌和ID,并且由于我正在构建Web前端,因此将它们存储在localStorage中。

任何可能恶意的用户都可以选择从该存储区中转储数据,并在他们的浏览器开发工具中查看他们可以更改以获取他人数据的价值!

这必须是可以解决的,我知道你们中的某些人过去会解决这个问题。 那么在这种情况下我们该怎么办?

也许有一种更安全的方式来做到这一点? 或者,也许我根本不需要存储它们?

任何可能恶意的用户都可以选择从该存储区中转储数据,并在他们的浏览器开发工具中查看他们可以更改以获取他人数据的价值!

真? 您应该基于拥有访问令牌的用户来授权请求​​,因此,如果整个用户都使用任何浏览器内调试工具并获得了令牌,则该用户将只能执行从UI可以执行的操作。

另一方面,您不需要保留用户ID。 一旦整个用户在系统中获得授权,该用户ID便应成为访问令牌的一部分,并且只有服务器才能使用它。

所谓的访问令牌可以作为加密的单词存储在Web浏览器cookie中,这比本地存储更好,因为cookie是作为常规或AJAX请求的任何HTTP请求的一部分发送的(即, 您不需要包含只要您想对API执行请求,就可以手动标记令牌 ),并且在服务器授权过程中,应该解密令牌并获取其信息(通常称为Claims )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM