将敏感数据存储在本地存储或会话存储中是否安全?本地存储允许对敏感数据进行任何攻击

Is it safe to store a sensitive data in Local Stoarge or session storage? Localstorage allows to any attacks for sensitive data

本文关键字:存储 敏感数据 任何 攻击 是否 会话 安全      更新时间:2023-09-26

在web应用程序中,Html5本地存储的安全性如何,或者是否有其他方法来保护本地存储中的敏感数据

项目结构:

前端:Html5,Angular js, 中间层: Asp.net webApi, 后端:Sql Server.

一旦用户登录到页面,该凭证将使用一些加密算法进行加密。它将被存储在db.

之后,每个子操作,如产品列表、订单详细信息、图书历史记录、添加产品都需要验证。

在页面刷新后,数据丢失,所以需要持久保存数据,所以我选择了localstorage。使用一些js算法加密的用户名和密码存储在本地存储。

我觉得这很不安全,因为任何人都可以从浏览器工具中窃取数据。

在这种情况下是否有其他方法,或者这种方法是安全的。

谁能帮我处理一下。

每个Webapp工匠都必须知道:

在防火墙之外,没有任何存储库是完全安全的。为什么?因为你需要打开一扇门,允许你的应用程序操作数据,每个人都可以访问。

假设您决定加密本地存储的内容。

这将阻止访问浏览器本地存储(例如开发人员工具)的人能够读取/写入数据。但是应用程序将如何访问这些数据呢?您有两个选项:

  1. 在客户端应用内发送加密算法+口令。这将暴露你所有的数据,如果有人设法读取你的应用程序的代码和访问浏览器的内存(例如开发人员工具)
  2. 从客户端发送所有数据到服务器,在那里进行解密。嗯…这毫无意义。因此,最好将数据存储在服务器中。

你可以随心所欲地尝试,你需要一扇敞开的门,而这扇敞开的门可以被任何人使用。

但是我有一个问题要问你:你真的需要一个完全安全的客户端存储库吗?这种存储库并不是为了完全安全而创建的,但是它们已经足够安全了!

例如,你的web应用程序的会话cookie是由浏览器存储的对吗?如果有人偷了cookie,它可以冒充用户而你的应用程序永远不会注意到它,对吧?当你想到它的时候,这是相当可怕的。

现在没有人在这个问题上花太多心思,因为浏览器足够安全,可以保护cookie免受恶意访问。当然,他们也做了同样的事情来保护本地本地/会话存储,IndexedDB, WebSQL等。

因此,如果您的数据比您的用户会话更宝贵,请将其保存在服务器中。如果没有,就把它放到浏览器中。

专业提示:在存储在不安全的存储库中时考虑加密,以使其更难获得。但请记住,这是有代价的:您将无法使用这些存储库的查询系统来搜索加密的数据。