gpt4 book ai didi

javascript - 网络应用程序 : What should I send back to the user?

转载 作者:行者123 更新时间:2023-12-03 08:59:05 25 4
gpt4 key购买 nike

我正在编写一个 Web 应用程序 - 前端使用 angularJS,后端使用 REST API 和 mongodb。由 Node.js 提供支持。

问题背景:

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

该策略的主要问题是,这意味着在取回 token 后,我需要在登录后保留 token 和 ID,并且因为我正在构建 Web 前端,所以我将它们存储在 localStorage 中。

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

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

也许有一种方法可以更安全地做到这一点?或者也许我根本不需要存储它们?

最佳答案

Any user who might be malicious may choose to dump data from that store, and see what value they could change to get at other people's data, right in their browser's dev tools!

真的吗?您应该根据拥有访问 token 的用户来授权请求​​,因此,如果整个用户使用任何浏览器内调试工具并获取 token ,则该用户将只能执行 UI 上的操作。

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

所谓的访问 token 可以作为加密字存储在 Web 浏览器 cookie 中,这比本地存储更好,因为 cookie 是作为任何 HTTP 请求的一部分发送的,无论是常规请求还是 AJAX 请求(即您每当您想要向 API 执行请求时,不需要手动包含 token ),并且在服务器授权过程中,您应该解密 token 并取回其信息(通常称为声明 em>)。

关于javascript - 网络应用程序 : What should I send back to the user?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32369614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com