繁体   English   中英

在LocalStorage中存储信用卡/银行账户信息有哪些风险?

[英]What are the risks of Storing Credit Card / Bank Account Information in LocalStorage?

我最近注意到我使用的账单支付网站似乎是在我的浏览器的LocalStorage中存储我的银行账户和信用卡号码。 数据存储在JSON对象中,该对象被字符串化为LocalStroage。 没有特殊的编码,模糊处理或数据加密。

虽然这最初非常令人反感,而且肯定看起来像是一个不合标准的工程实践,但我很难想到这个实现可能会被严重破解的方式:

  • 由于该站点是HTTPS,因此中间人攻击无法注入恶意JavaScript以读取LocalStorage。
  • LocalStorage不在HTTP和HTTPS之间的同一域上共享,因此将排除非SSL连接上的脚本注入。
  • 如果Web应用程序无法清理用户提交的内容,可能会注入恶意脚本以从LocalStorage窃取数据,但它也可能直接从JavaScript内存中窃取此数据。 因此,使用LocalStorage风险级别也不例外。
  • 恶意浏览器插件可能会从LocalStorage中读取数据,但这与恶意插件可以从网页上抓取数据或从JavaScript内存中读取数据的风险没有什么不同。
  • 如果用户在公共计算机上登录此站点,则有人可能会从LocalStorage中窃取他们的付款数据。 但是,如果他们将自己的数据留在了应用程序中,那么与屏幕上的数据有关的人就不会有太大的不同了。 我假设LocalStorage在注销时被清除(这可能是一个过于慷慨的假设)。

这种做法还会带来哪些其他安全漏洞?

如果Web应用程序无法清理用户提交的内容,可能会注入恶意脚本以从LocalStorage窃取数据,但它也可能直接从JavaScript内存中窃取此数据。 因此,使用LocalStorage风险级别也不例外。

我不同意。 如果必须将脚本注入非常特定的网页以便能够访问用户输入的敏感数据,或者如果可以在该主机上的任何页面上注入JavaScript并只是访问LocalStorage并发送,则会产生很大的不同。数据在某处。 在后一种情况下,用户在任何时候访问的一个页面足以进行攻击。

此外,您必须考虑到LocalStorage通常由Web浏览器以纯文本格式存储。

恕我直言,在LocalStorage中存储敏感数据的唯一方法是让服务器使用经过身份验证的密码使用仅由服务器知道的用户特定密钥对其进行加密。 如果之后数据应该再次使用,客户端可以将其发送到服务器,服务器可以解密并使用它。 当然,敏感部分永远不应该被发送回客户端(例如,作为网页上的预填表格)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM