基于引荐拒绝访问页面

时间:2012-02-17 22:15:16

标签: php javascript paypal

这是我在的地方:

  1. 我有一个Wordpress插件,允许订阅到位,并使用Paypal IPN。此插件根据用户是否具有有效订阅拒绝访问某些页面。

  2. 我有另一个插件,允许一次性支付不同的服务。这会将用户带到Paypal,并将其重定向到可以上传视频的页面。这些视频只能在付款后上传,但任何人都可以通过直接网址访问该页面...

  3. 如何限制访问此上传页面?

2 个答案:

答案 0 :(得分:1)

所以我不确定你是否想用JavaScript或PHP做这个... PHP会更可靠(人们可以关闭JavaScript)但最终,如果用户真的可以改变引用者我们希望绕过你采取的任何措施,因此在实施时要牢记这一点。

最好的方法是让if语句检查引用者,如果它不是可接受的引用者,只需重定向它们。

<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">
<!-- Hide script from old browsers
if (document.referrer != '[Only Allowed Referrer URL]')
{
    window.location = "http://not.allowed.to.view.site";
}
//-- Stop hiding script -->
</SCRIPT>

<?php

if ($_SERVER["HTTP_REFERER"] != "[Only Allowed Referrer URL"])
{
    header( 'Location: http://not.allowed.to.view.site' ) ;
}

?>

我还没有完全测试上面的代码,但是这样的东西就是你想要的。基本上,如果它不是来自“允许”的引荐来源,则重定向到错误页面。

同样,使用引荐来源网址拒绝或授予对页面的访问权限并不可靠,但如果你想这样做,那就是你需要的东西。还要警惕诸如URL有时会有“www”之类的东西。在开始时,有时可能不会。您可能需要在if语句中考虑URL的变体。

答案 1 :(得分:1)

我假设您使用PayPal形式使用此类内容:

<input type="hidden" name="return" value="http://mydomain.com/verify.php">

如果是这样,请在此页面中http://mydomain.com/verify.php您必须验证交易是否正确。 Instant Payment Notification - Code Samples的东西,对吗?好吧,如果此验证无效,则拒绝所有进一步处理(上传视频)。

否则,您重定向到我们说http://mydomain.com/upload.php

header('Location: http://mydomain.com/upload.php') ;

现在,在您放在顶部的上传页面中:

if ($_SERVER['HTTP_REFERER'] != 'http://mydomain.com/verify.php')
{
    die('get out of here!');
}