有 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 上的付款。
- PayPal 使用 http(而非 https)回答 INVALID,以便黑客可以在 VERIFIED 上再次更改它。黑客获利。
请告诉我,我哪里错了。我很困惑,因为其他支付系统使用 SecretKey
然后你应该验证他们发送的散列。
最佳答案
你的错误在第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)
关于php - Paypal IPN 安全性已验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15136459/