我正在使用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数据 - 我不需要持久用户并故意转为匿名结账。
答案 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)
_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可能会有所帮助。