我正在尝试创建一个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和其他浏览器开发人员工具是可见的,因此有人可以插入代码行并查看该链接。那么我该怎么做才能确保只有管理员可以看到“编辑”页面并且只有管理员正在编辑设置?如何保护链接和编辑页面本身?
答案 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
传递给后续页面调用。