php - 如果用户不是来自 HERE,则不处理 - 如何处理?

标签 php security paypal

我尝试使用 $_SERVER,但它对我不起作用。

我需要的是:

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

我该怎么做?

我尝试了以下方法:

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

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

https://www.paypal.com/us/cgi-bin/webscr?cmd=_flow&SESSION=39QzTUoR0GugSwdZjeJ5zf4EkFIa2-rlRsdrqxfx4O3ibIMuzY3Eab7y6Dq&dispatch=5885d80a13c0db1f8e263663d3faee8dc60d77e6184470d515cedf52660ea0cd

请帮忙,这是我正在研究的东西的安全漏洞。

最佳答案

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

您应该考虑查看 PayPal 的 Instant Payment Notification服务并为此实现一个监听器。 Paypal 有 some sample code为此,用各种语言。这是 IPN 协议(protocol)的简要概述:

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

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

  3. PayPal 发回一个单词,如果消息源自 PayPal,则为 VERIFIED,如果与最初发送的内容有任何差异,则为 INVALID

  4. 一旦 IPN 得到验证,您就可以解锁用户付费的功能/选项,如 @cHao suggested in the other answer .

进一步阅读:

关于php - 如果用户不是来自 HERE,则不处理 - 如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4059409/

相关文章:

php - 从多个表中选择顺序和组

php - 将变量从 PHP 传输和存储到 JS/jQuery 的最佳方式

c++ - 使用自定义服务器通过 http 安全传输数据

sql-server - 从 exe 到 SQL 的安全连接

java - Android 应用程序上的 Google 电子钱包集成

php - CSV LOAD DATA INFILE 中出现解析错误

php - 具有后备 (COALESCE) 和 JOINS 的 MySQL 查询

java - Tomcat 7 的 CA 证书安装过程

java - Paypal 在 Wicket 应用程序中的 IPN

python - 为什么代码在收到响应后不执行