2012-06-23 24 views
3

我在我的网站上有一个PayPal按钮,我有一个PayPal会在用户完成付款后指示用户的页面。我如何确保进入此页面的唯一人员通过paypal.com转介?只接受来自已定义的引荐来源网址的访问?

+0

贝宝没有安全的方式来确认您的付款。我知道你可以使用authorize.net确认付款。由于您使用贝宝,您可能知道这一点。 –

回答

5

您可以使用$_SERVER["HTTP_REFERER"]得到引荐,并检查它反对paypal.com

$referer = $_SERVER['HTTP_REFERER']; 
$referer_parts = parse_url($referer); 
if($referer_parts['host'] == "paypal.com") { 
    echo "good"; 
} else { 
    echo "bad"; 
} 

注:

'HTTP_REFERER'

页面的地址(如果任何)将用户代理引用到当前页面的 。这由用户代理设置。并非所有用户代理都会设置此项,有些用户代理可以将HTTP_REFERER修改为 功能。总之,它不能真正被信任。

我不认为有任何可靠的方法来检查用户来自哪里。我可以简单地转到一个PayPal页面,只需运行location.href='http://yoursite.com/yourpage.php'或在DOM中插入一个链接,我可以点击,并且您无法知道。

我认为唯一的办法是,如果贝宝用客户端发送的唯一代码将客户发送到您的网站,那么您可以在自己的端点进行验证。这样,唯一能够访问你的页面的人就是拥有代码的人。

+0

为什么不用某种形式的'if'语句?我可以修改代码,但不能写出值得挽救我的生活的代码,但我认为如果我知道如何从头开始编写代码,我会这么做。 –

+0

你知道这不是一个解决方案吗? –

+0

@AdamSack我没有包含代码,因为它不是一个可靠的方法(据我所知没有一个方法),我不希望Colby只是复制/粘贴,认为它是万无一失的。另外,我的回答太长,无法发表评论。无论如何,我已经包含了代码。 – sachleen

相关问题