【问题标题】:Is it safe to store the user information in localStorage?将用户信息存储在 localStorage 中是否安全?
【发布时间】:2016-06-03 14:15:32
【问题描述】:

目前我将用户信息存储在 localStorage 中,但由于某种原因,某事告诉我,由于安全性或其他原因,这一定是错误的……将 ex user_id 的用户信息传递给 http 调用的最佳做法是什么稍后。

如果我将 user_id 存储到 localStorage,有人可以更改它并代表其他人的 user_id 进行调用。任何人都可以建议我最好的做法,我将如何实现这样的事情,没有人可以使用用户登录信息进行操作。

我在想的一种方式是,总是给用户/我打电话并获取用户信息,然后再拨打另一个电话,这会是更好的方式吗?

【问题讨论】:

  • 您可以使用会话,然后数据存储在服务器上,而不是客户端上。客户端只有服务器上记录的标识符。
  • “如果我将 user_id 存储到 localStorage,有人可以更改它并代表其他人的 user_id 进行调用。” localStorage 与创建存储的源相关联对象。
  • @guest271314 你能解释一下你的评论是什么意思吗?我想说的是假设用户有一个 team_id 属性,如果我将它存储在 LocalStorage 和后者我需要通过将此属性转换为 http 调用,此 team_id 可以从 localStorage 更改,您将能够随 http 调用发送您想要的任何 team_id,因此不应允许用户更改他的 attibutes...
  • 如果您的服务器依赖于用户告诉它他们属于哪个团队,并且只是接受未经验证的信息并允许以这种方式操作数据,那么您的结构就完全崩溃了。服务器需要验证用户是谁,然后验证发送的任何信息,或者不接受任何输入并仅使用它已经知道的有关用户的数据。
  • 你自己想办法。事实上,您的 服务器 必须最终控制去往何处,而不是客户端。 LocalStorage 是一个无关紧要的实现细节,重要的部分是您的服务器从客户端接受任意值并且只是盲目地信任它。 你的主要错误。

标签: javascript php


【解决方案1】:

每次用户登录到您的应用程序时,您必须在服务器端对他们进行身份验证,并使用服务器端会话,该会话使用 cookie(或某种身份验证令牌)将请求返回到您的服务器。

如果可以通过更改用户 ID 来欺骗请求,那么您可能有一个不安全的 Web 应用程序。

您可以在本地存储中存储用户 ID 或用户名之类的内容,只要您仅将其用于“记住我”功能以填充表单字段。

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 2018-10-20
    • 2012-10-14
    • 2012-04-04
    • 2016-05-07
    • 1970-01-01
    • 2017-01-13
    • 2018-07-05
    • 2010-12-19
    相关资源
    最近更新 更多