【发布时间】:2012-02-17 22:15:16
【问题描述】:
这是我所在的位置:
我有一个允许订阅的 Wordpress 插件,并使用 Paypal IPN。此插件会根据用户是否拥有有效订阅来拒绝访问某些页面。
我有另一个插件允许一次性支付不同的服务。这会将用户带到 Paypal,并将他们重定向到可以上传视频的页面。这些视频只能在付款后上传,但任何人都可以通过直接URL访问该页面...
如何限制访问此上传页面?
【问题讨论】:
标签: php javascript paypal
这是我所在的位置:
我有一个允许订阅的 Wordpress 插件,并使用 Paypal IPN。此插件会根据用户是否拥有有效订阅来拒绝访问某些页面。
我有另一个插件允许一次性支付不同的服务。这会将用户带到 Paypal,并将他们重定向到可以上传视频的页面。这些视频只能在付款后上传,但任何人都可以通过直接URL访问该页面...
如何限制访问此上传页面?
【问题讨论】:
标签: php javascript paypal
所以我不确定你是想用 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 的变体。
【讨论】:
我假设你在你的 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!');
}
【讨论】: