3

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

有人可以告诉我它是如何保护的,因为我不明白吗?

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

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

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

4

1 回答 1

5

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

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

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

只需确保在使用时指定了一个您信任的 CA 捆绑包,您就可以开始使用了。另请参阅禁用 CURLOPT_SSL_VERIFYHOST (libcurl/openssl) 的安全后果

于 2013-02-28T20:31:51.943 回答