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

Moh*_*hir 10 javascript security javascript-events angularjs asp.net-web-api2

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

项目结构:

前端:Html5,Angular js,Middletier: Asp.net webApi,BackEnd:Sql Server.

用户登录页面后,使用一些加密算法对该凭证进行加密.它将存储在db中.

之后,每个子动作如产品列表,订单详情,图书历史记录,添加产品需要验证.

在页面后刷新时,数据会丢失,因此需要保留数据,因此我选择了localstorage.存储使用某些js算法加密的用户名和密码,并放入本地存储器中.

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

在这种情况下是否有任何替代方法,否则这种方法是安全的.

任何人都可以帮助我处理.

gga*_*iao 16

每个Webapp Craftsman都必须知道:

防火墙之外没有可以完全安全的存储库.为什么?因为每个人都可以访问您需要允许应用程序操作数据的开门.

想象一下,您决定加密本地存储的内容.

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

  1. 在客户端应用程序中发送加密算法+密码.如果有人设法读取您的应用程序的代码并访问浏览器的内存(例如开发人员工具),这将公开您的所有数据
  2. 将每个数据从客户端发送到服务器以在那里解密.嗯......这没有意义.最好将数据存储在服务器中.

你可以尝试尽可能多的东西,你需要一扇敞开的门,任何人都可以使用这扇敞开的门.

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

例如,您的网络应用程序的会话cookie是由浏览器存储的吗?如果有人窃取了该cookie,它可以冒充用户,您的应用程序将永远不会注意到它,对吧?当你想到它时,这是非常可怕的.

如今,没有人会对此深思熟虑,因为浏览器足以保护cookie免受恶意访问.当然,他们也这样做是为了保护本地本地/会话存储,IndexedDB,WebSQL等.

因此,如果您的数据比用户会话更珍贵,请将其保留在服务器中.如果没有,请继续将其放入浏览器中.

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