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 安全性已验证的主要内容,如果未能解决你的问题,请参考以下文章