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

有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,然后您应该验证他们发送的哈希值。

【问题讨论】:

  • 为什么这个问题被标记为一个完全不相关的问题的重复?

标签: php https paypal payment paypal-ipn


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-17
    • 2012-05-16
    • 2018-11-19
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多