我使用的是Drupal6,Ubercart6.x-2.4,以及条纹支付模块。
我想要再次检查我的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数据--我不需要持久的用户,也不需要故意打开匿名结帐。
发布于 2013-04-03 23:06:00
_save_cc_data_to_order()从3个地方调用:
uc_credit_order()'s保存操作。当调试模式(uc_credit_debug)打开时,它会保存完整的付款详细信息。当调试模式关闭时,它会保存信用卡号的最后4位数字(以及除CVV).uc_credit_order()'s提交操作之外的所有其他付款详细信息。当调试模式打开时,它会保存完整的付款详细信息。当调试模式关闭时,它永远不会是called.uc_credit_terminal_form_submit().当调试模式打开时,它会保存完整的付款详细信息。当调试模式关闭时,它永远不会被调用。因此,在正常情况下(当Debug模式关闭时),Ubercart会存储一些经过清理的信息。我不能说这是否符合您的PCI遵从性要求,但this answer可能会有所帮助。
发布于 2012-11-12 11:19:03
为了确保CC数据不会保存到Drupal / Ubercart设置中的数据库中,可以修改modules/ubercart/payment/uc_credit/uc_credit.module并注释掉函数_save_cc_data_to_order的内容。
您可以通过监视数据库中uc_orders表的data列,或者通过使用管理屏幕查看订单来验证这是否有效。进行更改后,不会将任何CC数据保存到数据库中,甚至最后4个也不会。
https://stackoverflow.com/questions/13301592
复制相似问题