PHP 使用 PCI 标准存储卡数据还是使用第三方存储卡数据?

PHP Storing card data using PCI Standards OR using a third party to store card data?

所以我今天面临一个具有挑战性的问题。我目前正在开发我正在开发的应用程序的支付界面。我必须让应用程序的未来用户可以选择存储和编辑他们的支付卡详细信息以便于结帐。我所在行业的每个企业都这样做。因此,必须让我的用户能够添加和编辑卡详细信息。

我正在考虑将用户卡详细信息存储到我们使用 PCI 标准租用的 AWS RDS 数据库中。我计划在需要时使用 PHP 和 mcrypt 以及盐和胡椒来加密和解密卡数据。

你们认为在这种情况下将支付数据存储到我们的数据库中是合适的选择吗?还是他们的任何第三方提供商会为我们存储用户付款详细信息?

重要的是要注意,我们将使用我们自己的商家帐户进行某些交易,而对于其他交易,我们将使用各种供应商的商家帐户通过他们的 API.

来处理我们的交易。

谢谢

我会推荐以下蓝图:

https://aws.amazon.com/blogs/security/how-to-enhance-the-security-of-sensitive-customer-data-by-using-amazon-cloudfront-field-level-encryption/

Cloudfront -> API 网关 -> Lambda -> RDS

Lambda 函数是唯一可以访问 RSA 私钥来解密由 Cloudfront 加密的字段值的地方。然后反过来用AWS Encryption SDK对持卡人信息重新加密,最后存入RDS。该 lambda 只允许使用 KMS 密钥进行加密。单独创建一个lambda函数,负责从RDS中读取数据,用KMS解密后传输给​​第三方。

解决方案的细节有很多问题,但至少如果您遵循此蓝图,您的 PHP 应用程序不会受到损害并暴露大量信用卡.归根结底,您希望限制处理持卡人信息的地点数量,以减少您的 PCI 审计风险。我什至会说为持卡人数据提供单独的 VPC 和 RDS。 Return"tokens"给你申请参考。