php - Paypal IPN 安全性已验证

标签 php https paypal payment paypal-ipn

有 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 请求以验证我们在 paypal 上的付款。
  3. 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/

相关文章:

php - 如何在php中多次获取数据

Perl LWP::UserAgent 无法连接到 HTTPS

paypal - 在线支付欺诈预防最佳实践

php - 带有css的php的样式和定位字符串

php - Codeigniter 在 Mac 上使用不同的 MYSQL

php - 从关联数组键中去除空格

android - "Connection closed by peer"Android 7.0 Nougat 在通过 HTTPS 连接到 SHA256 CA 安装的 Windows 2003 Server SP2 时发生错误

java - 页面的安全或 https 不起作用

php - Braintree 放置在 UI 字段验证中

paypal - 用于快速结帐的数字商品 (dg.js) 无法正常工作