基于推荐拒绝访问页面

Denying Access To A Page Based On Referrel

本文关键字:拒绝访问 于推荐      更新时间:2023-09-26

我现在的位置:

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

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

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

所以我不确定你是想用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拒绝或授予对页面的访问权限并不那么可靠,但如果你想这样做,你需要这样的东西。也要注意一些事情,比如URL开头有时可能有"www.",有时可能没有。您可能希望在if语句中考虑URL的变体。

我假设您在paypal表单中使用了这样的东西:

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

如果是,则在此页面:http://mydomain.com/verify.php中,您必须验证事务是否正确。即时支付通知-代码样本的东西,对吗?好吧,如果这个验证无效,你会拒绝所有进一步的处理(上传视频)。

否则,您将重定向到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!');
}