PayPal IPN 安全性已验证

Posted

技术标签:

【中文标题】PayPal IPN 安全性已验证【英文标题】:PayPal IPN security VERIFIED 【发布时间】:2013-02-14 16:45:49 【问题描述】:

有PayPal IPN php示例代码https://www.x.com/developers/PayPal/documentation-tools/code-sample/216623

谁能告诉我它是如何保护的,因为我不明白?

示例:我有一家网店。我没有 https。

    通过我们的http://my-magazine.com/process_pp.php 接收来自 PayPal 的数据 此数据未加密,因为我的网站位于 http 上。我对吗? 所以(如果它没有加密的话)一些黑客可以改变它。 我们发送一个 https 请求来验证我们在贝宝上的付款。 PayPal 使用 http(不是 https)回答 INVALID,因此黑客可以在 VERIFIED 上再次更改它。黑客获得利润。

请告诉我,我的错误在哪里。我很困惑,因为其他支付系统使用SecretKey,然后您应该验证他们发送的哈希值。

【问题讨论】:

为什么这个问题被标记为一个完全不相关的问题的重复? 【参考方案1】:

您的错误在第 3 步;您正在通过 HTTPS 将数据发送回 PayPal(准确地说是 https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate),并且 PayPal 在同一(SSL 安全)连接上发送 HTTP 响应,并带有无效/验证响应。 只要您确保验证了提供给您的 SSL 证书,您就可以放心如果您收到“已验证”响应,数据是真实的。

顺便提一下,默认的IPN(PHP)示例代码强制进行证书和cn验证;

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);

只要确保您指定了一个您在使用时信任的 CA 捆绑包,您就可以开始使用它了。 另见Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)

【讨论】:

以上是关于PayPal IPN 安全性已验证的主要内容,如果未能解决你的问题,请参考以下文章

测试 PayPal 安全更改是不是有效

PayPal IPN 已验证握手但 IPN 无效

Paypal IPN 已验证,但 Paypal 不断重试

使用非托管 PayPal 按钮时如何使用 IPN 验证 PayPal 数据

没有 IPN 历史记录和 Paypal 安全性

Paypal IPN 获得空白确认(应为“已验证”或“无效”)