0

我正在使用 Drupal 6、Ubercart 6.x-2.4 和 Stripe 支付模块。

我想再次检查我的 PCI 合规性并确保我没有将信用卡数据存储在我的数据库中,但我查看了我的数据库并在uc_orders表中发现了加密的 CC 数据。

里面有modules/ubercart/payment/uc_credit/uc_credit.module一个方法叫_save_cc_data_to_order. 如果我注释掉这个方法的内容,订单仍然通过我的测试网关,但数据库不再填充 cc 数据。

破解 ubercart 模块代码是停止在我的数据库中保存 cc 数据的有效方法,但我认为这不是必需的。

到底是怎么回事?我在管理员/商店/设置/付款中关闭了调试模式。我不明白为什么它会保存任何 cc 数据——我不需要持久用户并故意打开匿名结帐。

4

2 回答 2

1

为了让自己确信 CC 数据没有在 Drupal / Ubercart 设置中保存到您的数据库中,请修改modules/ubercart/payment/uc_credit/uc_credit.module并注释掉函数的内容_save_cc_data_to_order

您可以通过监视数据库中表的datauc_orders或使用管理屏幕查看订单来验证此操作是否有效。进行更改后,将不会将任何 CC 数据(甚至最后 4 个)保存到数据库中。

于 2012-11-12T03:19:02.790 回答
1

_save_cc_data_to_order()从 3 个地方调用:

  • uc_credit_order()的保存操作。当调试模式 ( uc_credit_debug) 打开时,它会保存完整的付款详细信息。当调试模式关闭时,它会保存信用卡号的最后 4 位数字(以及除 CVV 之外的所有其他付款详细信息)。
  • uc_credit_order()的提交操作。当调试模式打开时,它会保存完整的付款详细信息。当调试模式关闭时,它永远不会被调用。
  • uc_credit_terminal_form_submit(). 当调试模式打开时,它会保存完整的付款详细信息。当调试模式关闭时,它永远不会被调用。

因此,在正常情况下(调试模式关闭时),Ubercart 会存储一些经过清理的信息。我不能说这是否符合您的 PCI 合规要求水平,但这个答案可能会有所帮助。

于 2013-04-03T15:05:59.997 回答