这是我在的地方:
我有一个Wordpress插件,允许订阅到位,并使用Paypal IPN。此插件根据用户是否具有有效订阅拒绝访问某些页面。
我有另一个插件,允许一次性支付不同的服务。这会将用户带到Paypal,并将其重定向到可以上传视频的页面。这些视频只能在付款后上传,但任何人都可以通过直接网址访问该页面...
如何限制访问此上传页面?
答案 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!');
}