如果用户不是来自这里,那么不要处理 - 如何?

Dug*_*ugi 0 php security paypal

我试图利用$_SERVER它,但它对我不起作用.

我需要的是:

要访问我网站上的页面,用户必须从Paypal返回.如果他没有从Paypal重定向到我的网站,那么不要执行该文件,而是给用户一个错误.

我怎样才能做到这一点?

我尝试了以下方法:

 $url = 'paypal';
 if(strstr($_SERVER['HTTP_REFERER'], $url)) {
     // my code
 } else {
    // my error
 }
Run Code Online (Sandbox Code Playgroud)

这对我不起作用,我怎样才能完成这项工作,来自paypal的示例链接(它很长):

https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&SESSION=39QzTUoR0GugSwdZjeJ5zf4EkFIa2-rlRsdrqxfx4O3ibIMuzY3Eab7y6Dq&dispatch=5885d80a13c0db1f8e263663d3faee8dc60d77e6184470d515cedf52660ea0cd
Run Code Online (Sandbox Code Playgroud)

请帮助,这是我正在努力的安全漏洞.

Dan*_*llo 5

你不能可靠地保证.通常,在这些情况下,您可以使用支付网关进行服务器端检查,以查看交易ID(或传递给您的任何内容)是否有效,以及是否已成功支付金额.

您应该考虑检查PayPal的即时付款通知服务,并为此实施一个监听器.PayPal有各种语言的示例代码.这是IPN协议的简要概述:

  1. PayPal会向您的IPN监听器发送一条消息,通知您该事件(例如收到的付款).

  2. 您的监听器将完整的未更改的消息发送回PayPal; 消息必须包含相同顺序的相同字段,并以与原始消息相同的方式进行编码.

  3. PayPal会发回一个单词,VERIFIED如果该消息来自PayPal,或者INVALID与最初发送的内容有任何差异.

  4. 验证IPN后,您可以解锁用户付费的功能/选项,如@cHao在其他答案中建议的那样.

进一步阅读: