如何保证 PayPal 变量的安全

Posted

技术标签:

【中文标题】如何保证 PayPal 变量的安全【英文标题】:How to keep PayPal variables secure 【发布时间】:2011-02-25 13:16:48 【问题描述】:

我正在尝试将我的第 3 方购物车链接到 PayPal,在此过程中我发现我的变量非常暴露,因此,如果有人使用 Firebug 来操纵我的变量的值,他们可以改变交易中物品的成本。

我对在线购物车和购物非常陌生,所以我的问题是如何使这一层远离用户并保护网站的安全?

【问题讨论】:

您使用的是哪种 PayPal 集成方式? 在他们的文献中,他们称之为“将 Paypal 与第三方购物车集成”。基本上,人们在网站上积累了一个购物车,当点击提交时,该数据通过 POST 发送到 paypal.com,其余交易完成。 【参考方案1】:

答案就在即时付款通知服务中。

完成交易后,PayPal 会在单独的流程中通知您最后一笔交易的付款详情。

您可以对照您在本地存储的数据检查这些详细信息。如果他们匹配,一切都很好。如果它们不匹配,您将需要调查问题。


一直不明白为什么 PayPal 不允许使用某种哈希 + 共享密钥对数据进行签名...但这对您没有任何帮助。


如果您将变量发布到 PayPal,您可以加密数据。不幸的是,这对于由重定向触发的 GET 请求是不可能的。

【讨论】:

我认为它确实允许您设置共享密钥。我的问题是,没有关于使用购物车发送哪些标准变量的解释,因此贝宝知道它是一个包含多个项目的加密购物车。我所能做的似乎就是购买单件商品。 我想重申,我的主要问题是使用此解决方案:stellarwebsolutions.com/en/articles/… 最终按钮本身带有一个变量 _s-xclick 来表示安全点击,但加密数据数组您发送的变量带有_cart 及其相关的购物车数据集。【参考方案2】:

有一种方法可以让 PayPal 在他们这边托管按钮变量。在他们的文档中寻找 PayPal Hosted Buttons:

https://cms.paypal.com/uk/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ButtonMgrAPIIntro#id093VD0JE0Y4

否则,如 Jacco 所述,使用 IPN 进行验证。

【讨论】:

【参考方案3】:

使用 PayPal NVP 或 SOAP API 创建加密按钮。基本上,您使用 php 设置所有信息,然后 API 为您提供 html。 或者,如果您只有几个产品,您可以制作自定义按钮。

API 文档齐全且易于使用。我个人使用 NVP,因为它被推荐给经验不足的程序员。您还可以将两者与 IPN(即时付款通知)系统一起使用,以便可以自动通过电子邮件发送数字产品。

【讨论】:

以上是关于如何保证 PayPal 变量的安全的主要内容,如果未能解决你的问题,请参考以下文章

使用客户端集成将变量 Amount 传递给 Smart PayPal 按钮是不是安全?

在JAVA中ArrayList如何保证线程安全

如何保证集合是线程安全的?

Controller是单例模式的吗?如何保证线程安全?

Java中如何保证线程安全性

这个 Paypal 设置安全吗?