ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – PayPal IPN安全验证

2019-09-01 06:28:31  阅读:538  来源: 互联网

标签:paypal-ipn php https paypal payment


有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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有