php – PayPal IPN安全验证
作者:互联网
有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使用INVALID / VERIFIED响应在相同(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,php,https,paypal,payment 来源: https://codeday.me/bug/20190901/1781375.html