【问题标题】:What are the security implications of HTML5 local storage for credit card infoHTML5 本地存储对信用卡信息的安全影响是什么
【发布时间】:2013-07-03 23:59:26
【问题描述】:

在我公司控制的网络服务器中存储信用卡信息会带来严重的安全风险。这是闯入的动力。它迫使我们非常小心地保护对我们数据库的访问。这是法律责任。

显然,这只会对在同一浏览器上从一个会话到另一个会话的用户真正有用,因此会有 UX 命中。

将这些信息放在 HTML5 本地存储中会提高安全性吗?

【问题讨论】:

  • 这个问题似乎离题了,因为它与编程无关

标签: html security web local-storage payment


【解决方案1】:

可能

通过将信用卡详细信息存储在个人计算机上,您可以降低成功入侵单个服务器(或“系统”)导致许多(成百上千)用户的信用卡详细信息泄露的可能性。理想的解决方案会带来与将内容存储在服务器上类似(或更低)的风险,但会分散攻击面,从而大大降低影响。

这里是一个建议方法的摘要(我已经完全提出了一个 SO 问题 HERE,目前还没有“poo-poos”):

  • 通过 HTTPS 从服务器检索加密密钥。

  • 使用它(在 javascript 中)在用户输入信用卡详细信息的同时加密本地存储中的信用卡详细信息。

  • 当用户离开页面时,把钥匙扔掉。

  • 如果用户稍后返回,他们可以从服务器检索相同的密钥,以及用于缓存后续详细信息的新密钥(以避免重复使用相同的密钥)。

  • 服务器不必保留信用卡详细信息的副本,黑客需要获得一定级别的访问权限,以便他们可以看到用户在页面上输入的详细信息。

【讨论】:

    【解决方案2】:

    没有。

    因为这样任何人都可以使用计算机获取未加密的信用卡信息。本地存储在计算机上未加密。将其加密存储在安全服务器上是更好的选择(即使存在法律问题)。

    但最好的选择是根本不存储它。这减少了每个人的法律和财务问题。如果人们对用户体验感到不满,请向他们解释不存储信用卡号是为了保护他们。

    【讨论】:

    • 最好的选择是根本不存储它。
    • 此外,任何跨站点脚本问题现在都从攻击者劫持会话转变为攻击者劫持会话和窃取 CC 信息。
    • @AshBurlaczenko 是完全正确的。尽可能不要存储任何东西。
    • 我发现这是关于威胁模型的有用答案。
    • 为了防御这种攻击,网站必须在将信用卡信息放入本地存储之前对其进行加密。那么获取大量信用卡号码的成本要求攻击者破坏服务器以获取解密密钥,并破坏每个存储数字的客户端。这将比只破坏服务器或单个客户端要昂贵得多。
    猜你喜欢
    • 2012-10-14
    • 2013-04-11
    • 2018-05-06
    • 2011-03-27
    • 2010-12-18
    • 2011-01-02
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多