将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击
Posted
技术标签:
【中文标题】将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击【英文标题】:Is it safe to store a sensitive data in Local Stoarge or session storage? Localstorage allows to any attacks for sensitive data将敏感数据存储在本地存储或会话存储中是否安全? Localstorage 允许对敏感数据进行任何攻击 【发布时间】:2017-01-14 22:54:00 【问题描述】:在 Web 应用程序中,html5 中的本地存储有多安全,否则有没有其他方法可以保护本地存储中的敏感数据。
项目结构:
前端:Html5,Angular js,中间层: Asp.net webApi,后端:Sql Server。
一旦用户登录到页面,该凭据将使用一些加密算法进行加密。它将存储在数据库中。
之后,每个子操作(如产品列表、订单详细信息、图书历史记录、添加产品)都需要验证。
在页面刷新后,数据会丢失,所以需要持久化数据,所以我选择了本地存储。将使用js算法加密的用户名和密码存储在本地存储中。
我觉得不安全,因为任何人都可以从浏览器工具中窃取数据。
在这种情况下是否有任何替代方法,否则这种方法是安全的。
谁能帮我处理一下。
【问题讨论】:
Can local storage ever be considered secure?的可能重复 【参考方案1】:每个 Webapp Craftsman 都必须知道一些事情:
防火墙之外没有可以完全安全的存储库。为什么?因为每个人都可以访问您需要允许您的应用程序操作数据的敞开大门。
假设您决定加密本地存储的内容。
这将阻止有权访问浏览器本地存储的人(例如开发人员工具)读取/写入数据。但是您的应用程序将如何访问数据?你有两个选择:
-
在客户端应用程序中发送加密算法 + 密码。如果有人设法读取您应用的代码并访问浏览器的内存(例如开发者工具),这将暴露您的所有数据
将所有数据从客户端发送到服务器进行解密。嗯……这是没有意义的。最好将数据存储在服务器中。
您可以随心所欲地尝试,您需要一扇敞开的门,而那扇敞开的门可供任何人使用。
但我有一个问题要问您:您真的需要在客户端有一个完全安全的存储库吗?创建这种存储库并不是为了完全安全,但它们足够安全!
例如,您的网络应用程序的会话 cookie 是由浏览器存储的,对吗?如果有人窃取了该 cookie,它可以冒充用户,而您的应用程序永远不会注意到它,对吧?当你想到它时,这非常可怕。
如今,没有人对此进行过多思考,因为浏览器足够安全,可以保护 cookie 免受恶意访问。当然,他们也采取了同样的措施来保护本地本地/会话存储、IndexedDB、WebSQL 等。
因此,如果您的数据比您的用户会话更宝贵,请将其保存在服务器中。如果没有,请继续将其放入浏览器中。
专业提示:在不安全的存储库中存储时考虑加密以使其更难获取。但请记住,这是有代价的:您将无法使用这些存储库的查询系统来搜索加密数据。
【讨论】:
以上是关于将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击的主要内容,如果未能解决你的问题,请参考以下文章