Drupal / Ubercart说它没有保存CC数据......那么什么是“_save_cc_data_to_order”?

时间:2012-11-09 03:14:21

标签: drupal drupal-6 ubercart stripe-payments

我正在使用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数据的有效方法,但我不认为这是必要的。

发生了什么事?我在admin / store / settings / payment中关闭了调试模式。我不明白为什么它会保存任何cc数据 - 我不需要持久用户并故意转为匿名结账。

2 个答案:

答案 0 :(得分:1)

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

您可以通过监控数据库中data表的uc_orders列或使用管理员屏幕查看订单来验证此方法。进行更改后,没有CC数据(甚至不是最后4个)将保存到数据库中。

答案 1 :(得分:1)

从3个地方调用

_save_cc_data_to_order()

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

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