【问题标题】:Save banking account data secure安全保存银行账户数据
【发布时间】:2012-01-25 10:28:06
【问题描述】:

我需要在 Web 项目中保存银行帐户数据。 项目为asp.net mvc 3,数据库为MSSQL 2008 R2。

但是我应该如何确保安全呢?

我的解决方案是:

  1. 解决方案:使用 TripleDESCryptoServiceProvider 加密数据并将其保存到数据库中。

  2. 解决方案:只保存帐户数据的最后 3 个数字(就像亚马逊向您展示的那样),以便用户识别他已将哪些帐户数据保存到系统中。 加密整个帐户数据并将它们保存到 Web 项目无权访问的不同数据库(可能使用存储过程)。

我们只需要账户数据,收取月费。所以我们在 web 项目中不需要它们。但是用户必须识别他提供了哪些帐户数据来支付费用。

什么是最好的解决方案?

编辑:

感谢大家的回复。 我认为我们将真正使用服务提供商,它将存储帐户数据并执行所有其他工作,例如应收帐款管理。

【问题讨论】:

  • 不是答案,但请记住考虑任何适用于您所在位置的银行数据存储的适用法律。例如,在英国,如果没有一些非常严格的(物理)安全措施,您就无法存储卡的详细信息。
  • 我会强烈建议您不要(完全)依赖问答网站来获取此信息。弄错这个可能会产生严重的法律/财务后果。您应该确保研究您所在国家/行业的相关 PCI 或类似标准。
  • 是的; @TomMorgan 说了什么。我也留下我的评论,只是为了强调它。如果这是针对一家小公司,他们无法承受一次违规的成本。如果这是一家大公司,没有理由不让熟悉的人从事此类工作。
  • 目前最好的解决方案是使用第三方服务并支付他们的费用。有了用户帐户数据,您的数据库服务器立即成为黑客的宝库。节省费用根本不值得您花时间和精力。
  • 如果这不是您的领域,请考虑聘请专家。您的用户和公司律师会感谢您。

标签: c# asp.net database security bank


【解决方案1】:

实际上,从我的评论开始 - 您最好的选择可能是与您的支付网关交谈。他们中的许多人都运行一个令牌系统,允许人们在不需要存储卡详细信息的情况下收取定期付款。用户只需输入一次详细信息,它们就会存储在支付网关中,您会取回一个令牌,然后您可以重新使用它来执行重复支付。

在这种情况下,您可以只存储卡号的最后 4 位数字:这应该足以让用户在需要时再次识别他们的卡。

它们可能也是获取与安全和存储方法相关的信息的良好首选。

【讨论】:

    【解决方案2】:

    我想这归结为在您保存银行号码后谁需要访问您的银行号码。

    如果它们由您的 Web 应用程序保存,然后由另一个私有应用程序读取,我的建议是使用公钥加密站点中的结果,并且仅在您的其他应用程序中使用私有解密密钥。这意味着即使您的数据库受到威胁,他们也需要您的私钥来访问数据。将其存储在其他地方。

    正如其他人所说,最好的解决方案是尽可能避免存储数据

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 2014-08-27
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      相关资源
      最近更新 更多