我最近注意到我使用的账单支付网站似乎是在我的浏览器的LocalStorage中存储我的银行账户和信用卡号码。数据存储在JSON对象中,该对象被字符串化为LocalStroage。没有特殊的编码,模糊处理或数据加密。
虽然这最初非常令人反感,而且看起来肯定是一种不合标准的工程实践,但我很难想出这种实施方式可能会受到严重破坏:
这种做法会带来哪些其他安全漏洞?
答案 0 :(得分:2)
如果网络应用无法清理用户提交的内容,可能是 可以注入恶意脚本来窃取LocalStorage中的数据, 但它也可以直接从JavaScript的内存中窃取这些数据。 因此,使用LocalStorage风险级别也不例外。
我不同意。如果必须将脚本注入非常特定的网页以便能够访问用户输入的敏感数据,或者如果可以在该主机上的任何页面上注入JavaScript并只是访问LocalStorage并发送,则会产生很大的不同。数据在某处。在后一种情况下,用户在任何时候访问的一个页面足以进行攻击。
此外,您必须考虑到LocalStorage通常由Web浏览器以纯文本格式存储。
IMHO在LocalStorage中存储敏感数据的唯一方法是让服务器使用经过身份验证的密码使用仅由服务器知道的用户特定密钥对其进行加密。如果之后数据应该再次使用,客户端可以将其发送到服务器,服务器可以解密并使用它。当然,永远不应该将敏感部分发送回客户端(例如,作为网页上的预填表格)。