拥有信用卡型号是否安全?

时间:2014-02-26 16:18:33

标签: c# asp.net-mvc paypal credit-card

我们现在正在我们的.net MVC应用上构建付款选项。到目前为止,我们已成功将paymant与Paypal选项联系起来,但现在我们正在引入和测试信用卡选项。

所以我们想知道托管和使用信用卡信息是否安全,甚至是暂时的?

我正在构建一个如下所示的viewModel:

public class CreditCardViewModel
{
    public int CardNumber { get; set; }

    public int ExpireMonth { get; set; }

    public int ExpireYear { get; set; }

    public string FirstName { get; set; }

    public string LastName { get; set; }
}

将在获取视图中生成一个新的,然后发回,一旦使用PayPal Integration验证信息,我们计划采用付款方式。但我想保护用户免受垃圾邮件,黑客攻击或被盗,因此我想知道这是一种安全/好的方法,还是StackOverflow社区会建议我采取另一种方式......

修改 我已经编辑了我的视图模型,它看起来像这样:

public class CreditCardViewModel
{
    [Required]
    public SecureString CardNumber { get; set; }

    [Required]
    [Range(1, 12, ErrorMessage = "Invalid Month Number")]
    public int ExpireMonth { get; set; }

    [Required]
    public int ExpireYear { get; set; }

    [Required]
    public string FirstName { get; set; }

    [Required]
    public string LastName { get; set; }
}

并且,如上所述,使用的数据将保存在数据库中。它将在POST方法中使用一次。

编辑根据Juliano和Chris Pratt的重要解释,我决定从网站上删除该模型并探索不同的途径(主要是探索Merchant SDK集成)。但是感谢大家的解释,因为我不知道这样的合规性存在。

1 个答案:

答案 0 :(得分:1)

任何接受Visa和MasterCard的支付应用程序都应符合PA-DSS(支付应用程序数据安全标准),这是支付应用程序的全球安全标准。规范的最后一个版本是3.0,可以在PCI site下载。

在本文档中,有一个名为“开发安全支付应用程序”的要求,该要求讨论了如何根据市场上的最佳实践开发安全的支付应用程序。关于您的具体问题,5.1.6.1说明了如何在内存中处理敏感数据(卡号,密码,安全码):

攻击者使用恶意软件工具从内存中捕获敏感数据。在内存中最小化PAN / SAD的暴露将有助于降低恶意用户捕获它的可能性,或者在不知不觉中将其保存到存储器文件中的磁盘并且不受保护。 此要求旨在确保考虑如何在内存中处理PAN和SAD。 了解敏感数据何时以及在内存中存在多长时间以及采用何种格式,将有助于应用程序供应商识别其应用程序中的潜在不安全因素,并确定是否需要其他保护措施。 此活动产生的编码技术是否取决于正在开发的特定软件和使用的技术。