我正在集成第三方结帐,并发现了一个安全漏洞,我需要帮助关闭。基本上,结帐过程是这样的:
如果有人在步骤2-4期间随时编辑手推车,那么问题就来了,Magento相信新的购物车内容就是他们花钱买的。
我不太熟悉magento如何保存引号,但我希望有一个"cart ID“或类似于表示特定购物车及其特定内容的ID,并且在购物车中添加/删除/编辑某些内容时会发生变化。然后我可以比较他们离开时的数字和他们回来时的数字,并确保没有欺诈行为。
所以我的问题是:
-Is有这样一个数字吗?
-Where是存储的吗?它是如何检索的?
-Can --它只是基于数字加载,以便在重定向到第三方时,用购物车中的项目重新填充购物车?
-If我的计划行不通,为什么,还有更好的方法吗?
-what是你最喜欢的不是来自你的国家的食物。我的是来自菲律宾的Sinagang猪肉。
谢谢你们的帮助。如果没有答案,我是不可能通过所有这些的。
-Matt
编辑:一些澄清-
这个过程是在我开始为他们开发之前就确定的,无论出于什么原因,他们都不想改变这个过程。
发布于 2014-09-09 23:25:28
结构
Magento有3种不同的检查和销售工作流结构:
Quote是在客户填写个人详细信息、地址、付款选项和访问支付网关或其他任何东西时存储物品的地方。
工作流程
手推车被转换成一个引号,你实际上是在为一个引号付费。一旦您的付款被确认(当您从付款网关被重定向回来时),Quote将被转换为订单。
Cart => Quote =>订单转换工作流旨在防止您所描述的内容,它还有助于对产品的正确价格进行簿记(这可能在将来发生变化)。
试图规避这一保护
当您单击订单确认按钮(并被重定向到付款网关)时,您的购物车信息将被转换为Quote信息(其中添加了许多客户信息和地址信息)。
如果您回过头来继续编辑购物车,您应该会看到您的购物车现在是空的(已经转换为Quote),如果您试图向购物车添加新产品,那么将创建一个具有与不同Quote对应的不同ID的新购物车,以此类推。
你的处境
如果您可以绕过当前Magento安装上的保护,请尝试在新的Magento安装上复制相同的步骤(原始Magento代码,单独的数据库,新安装的)。
我怀疑它是否会复制,因为我使用过类似的用例--在Magento 1.5、1.6、1.7、1.8中--但是如果它确实复制了,请在Magento官方频道上创建一个bug报告,因为这将是一个很高的安全风险。
https://stackoverflow.com/questions/25759234
复制相似问题