【发布时间】:2011-04-16 14:08:04
【问题描述】:
我只是想由其他负责人运行它,以确保我没有遗漏一些明显的东西。我正在使用 Payflow Link,它可以处理电子商务交易的所有信用卡问题。但是,您通过 POST 变量将交易总额传递给 PayPal - 这似乎是一个潜在的安全漏洞:
- 恶意用户可以加载他的购物车并继续结帐
- 通过读取隐藏的输入字段,他可以将 POST 欺骗到 PayPal,总金额为 1 美分。
- Paypal 将执行交易,调用我的订单记录脚本,该脚本将记录交易并标记他的物品以便发货。
我可以通过访问数据库、拉出他的购物车物品并重新计算它们的价格以及运费和税金来检查他的购物车的总金额。但这只是为了检查篡改(多个数据库查询,加上每个项目 2 次 Web 服务调用以获取运费和税金)的大量繁重工作。
我的想法:
- 向 PayPal 发送金额的正常 POST 变量
- 然后,在用户定义的变量(转发到我的日志记录脚本)中,存储总量的 sha1 哈希,加上一些私钥
- 另一方面,日志记录脚本重新散列美元金额,加上相同的私钥,并与发送的散列值进行比较。
- 发送的哈希值和计算的哈希值之间的差异表明存在篡改,订单将被标记为红色,以供人工审核。
这有意义吗?我错过了什么吗?
编辑(澄清):
显然,根据前几个回复,我并没有明确表达我的观点。我意识到这不是一个理想的设置。我知道其他公司提供类似甚至更好的服务。我知道我必须检查变量,我不能简单地信任它们。请,如果您要回复,我在答案中寻找的只是:
谁能证明我的提案中存在一个漏洞,该漏洞允许恶意用户更改 PayPal 变量并且未被检测到?
这是一个非常直接的问题。这就是我正在寻找的一切。对于任何可以回答的人,提前感谢您的时间和帮助!
【问题讨论】:
-
在查看了您的 cmets 并重新检查了 Paypal Pro 和 Paypro Link 之间的链接后,我撤回了我的答案。它对我来说也看起来不可靠。我对 Alec Smart 的回答表示支持,但实际上,如果是我,我会花更多的钱来使用 Paypal Pro 或寻找替代方案。我们对 Cybersource 非常满意。
-
@David - 感谢您的 cmets 和坦率。我意识到这可能不是完美的设置;然而,这就是客户正在使用的东西,所以我必须把它当作一个给定的。 @ all - 我感谢到目前为止提供的帮助,但还没有人真正回答我的问题。我不明白似乎假设的设置的漏洞;到目前为止,没有人向我展示过一个缺陷。如果这显然是一个糟糕的设置,那么我所要求的只是一个说明原因的例子。
标签: security encryption paypal e-commerce