【问题标题】:Denying Access To A Page Based On Referrel拒绝访问基于推荐的页面
【发布时间】:2012-02-17 22:15:16
【问题描述】:

这是我所在的位置:

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

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

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

【问题讨论】:

    标签: php javascript paypal


    【解决方案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 的变体。

    【讨论】:

      【解决方案2】:

      我假设你在你的 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!');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-11-09
        • 2019-01-08
        • 2019-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-14
        相关资源
        最近更新 更多