Facebook application, how to check if inside Facebook canvas / standalone using PHP?
这个问题与上述问题完全相同,但上述方法的解决方案现在似乎不起作用,任何更新?关于HTTP_REFERRER标头,我在Firefox中发现了一些问题。还有其他黑客吗?
答案 0 :(得分:1)
传递有效的signed_request
可能是一种测试方法......
只有你的应用程序APP_SECRET
才能解码signed_request
,因此不太可能有人欺骗有效的signed_request
};如果他们能够做到这一点 - 那么他们几乎绕过了Facebook的安全性。
如果他们设法做到了,那么可能他们值得能够在Facebook以外使用您的应用程序;)
答案 1 :(得分:0)
我只是这样做($ this< ---是一个facebook sdk对象):
$this->signedRequest = $this->getSignedRequest();
if(!$this->signedRequest){
show_404();
}
答案 2 :(得分:-1)
试试这个:
public static function referrerIsFacebookCanvasApp() {
if (stripos($_SERVER['HTTP_REFERER'], "apps.facebook.com") === false || strpos($_SERVER['HTTP_REFERER'], "facebook.com/l.php?u=") !== false) {
return false;
}
return true;
}