为FB选项卡应用程序创建“编辑设置”页面并对其进行保护

时间:2014-06-17 11:45:53

标签: php jquery facebook facebook-javascript-sdk facebook-php-sdk

我正在尝试创建一个FB标签应用。它应该有一个编辑设置页面,显然应该只对页面管理员可访问。如果管理员正在观看标签 - 他应该会看到该页面的链接。我可以用jQuery做这样的事情:

var is_admin = "<?php echo isset( $page['admin'] ) && $page['admin'] == 1 ? true : false; ?>";
if(is_admin)
   $("<div id='div_edit_settings'>Edit Settings</div>").appendTo("some_div");

稍后我可以检测到这个链接何时被点击并显示页面(它也应该显示在选项卡内,但由于它存储在服务器上,因此也可以通过浏览器访问)。

问题是Fire对Firebug和其他浏览器开发人员工具是可见的,因此有人可以插入代码行并查看该链接。那么我该怎么做才能确保只有管理员可以看到“编辑”页面并且只有管理员正在编辑设置?如何保护链接和编辑页面本身?

1 个答案:

答案 0 :(得分:1)

您应该使用PHP将链接插入您的页面,例如:

<?php if ( isset( $page['admin'] ) && $page['admin'] == 1 ) : ?>
  <div id='div_edit_settings'>Edit Settings</div>
<?php endif; ?>

您还应该将管理状态保存到会话中(名称不明显,可以随后检查可能的随机字符串),以便您可以在其他页面上验证查看链接的用户是否实际上是管理员(您在访问其他网页时失去了对$page['admin']的访问权限,除非您将signed_request传递给后续页面调用。