Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
E commerce 在SAAS应用程序数据库中存储Braintree API密钥_E Commerce_Payment Gateway_Multi Tenant_Saas_Braintree - Fatal编程技术网

E commerce 在SAAS应用程序数据库中存储Braintree API密钥

E commerce 在SAAS应用程序数据库中存储Braintree API密钥,e-commerce,payment-gateway,multi-tenant,saas,braintree,E Commerce,Payment Gateway,Multi Tenant,Saas,Braintree,我们正在构建一个多租户SAAS web应用程序。我们的租户希望我们允许他们通过我们的应用程序销售各种产品,他们可以选择接受信用卡付款。为了支持这一点,我们将要求承租人拥有自己的Braintree帐户。租户通过我们的应用程序向我们提供他们的Braintree API密钥。然后,我们使用这些API密钥代表他们与Braintree帐户交互(卡存储、卡验证和基本交易) 此模型与现有Braintree客户使用的模型相同,而且还有更多 我们需要记录承租人的API信息(商户ID、公共API密钥和私有API密钥

我们正在构建一个多租户SAAS web应用程序。我们的租户希望我们允许他们通过我们的应用程序销售各种产品,他们可以选择接受信用卡付款。为了支持这一点,我们将要求承租人拥有自己的Braintree帐户。租户通过我们的应用程序向我们提供他们的Braintree API密钥。然后,我们使用这些API密钥代表他们与Braintree帐户交互(卡存储、卡验证和基本交易)

此模型与现有Braintree客户使用的模型相同,而且还有更多

我们需要记录承租人的API信息(商户ID、公共API密钥和私有API密钥),以使这一切正常工作

我的问题是:

  • 我们可以简单地将这些信息存储在应用程序数据库中吗
  • 存储此信息是否会影响我们或我们的租户的PCI/DSS范围
  • 如果我们不能以原始形式存储信息,那么什么是合适的存储形式
  • 注意:我们已经就同一个问题直接联系了Braintree,但我们认为获得其他意见也不会有什么坏处:)

    干杯,
    Sam

    IMHO,请注意,您将[如果没有,应该]拥有基于租户的加密密钥[每个租户可以配置自己的crytographic算法和密钥=>SAAS Cusomization],请使用租户特定的密钥加密
    授权ID
    ,然后保存在数据库中。这些敏感数据应该得到保护,您应该有一个说明,说明您正在数据库中维护这些密钥,以便承租人可以在不需要时选择退出,并在需要时手动输入密钥。这将确保安全。顺便说一下,您的应用程序使用SSL


    请分享您对该建议的想法

    因此Braintree回答了这个问题:

    只要您的系统符合PCI,并且您的商家知道 如果他们的API密钥存储在您的服务器上,那么您应该 好的如何存储集成API密钥完全取决于您, 而且[我们]实际上没有任何最佳实践可供提供


    因此,这种情况似乎不会影响我们产品的PCI/DSS范围,而且我们可以自由选择适当的方式来存储我们获得的私有API密钥(saravanan的建议是一种可能的选择)。

    感谢您的回答。使用SSL。提供选择退出(在我们的文档中解释)。我对你的基于租户的加密密钥建议有点困惑。WooThemes、Goodsie和Tutorrove(如上链接)似乎没有使用这种方法。这似乎有点过分了。我们还必须存储加密配置信息,因为我们需要能够按需解密以处理支付。我们现在想的是:……这样,如果没有我们的加密密钥(存储在程序集中),我们的数据库将毫无用处。在任何情况下,我们都将在实施任何东西之前看看Braintree的建议……他们可能很适合提出建议。@sammy34:嗨,Sam,谢谢分享您的见解。我遇到了一个实现,它使用了处理租户加密密钥的选项,甚至用于密码加密和验证,因此我建议使用这种方法。在这种情况下,使用该应用程序的租户将设置自己的密钥。如果租户没有,则他们将使用故障保护默认密钥。我没有听说在那件事上会有绩效处罚。供您参考。