2013-08-23 59 views
0

我的网站包含一个页面(或很好,最上面),顶部全部处理POST和东西。现在,我有一些POST,这是专门为管理员。这些都位于一个单独的文件,所以我包括它像以下:PHP只包含文件的管理员

if($_SESSION['type'] == 'admin'){ 
    include('adminhandler.php'); 
} 

现在,在adminhandler.php我还检查每个POST或功能的用户的类型是否是正确的,例如:

if(isset($_POST['deleteUser']) && $_SESSION['type'] == 'admin'){ /* do stuff;*/ } 

现在,我想知道这是否确实是必要的。有没有机会用户可以操纵任何东西以某种方式包含一个php文件,而不需要$_SESSION['type']admin

这可能是一个愚蠢的问题,但为了安全起见,我宁愿在不确定之前采取一定的措施。

+1

$ _SESSION数据保存在纯服务器端。只要你不要做一些愚蠢的事情,比如允许'$ _SESSION [$ _ GET ['key']] = $ _GET ['value']'并让用户直接操纵或影响会话内容,那么不会...他们无法让您的系统包含该文件。 –

+0

因此,第二次检查,在检查的包含文件内没有必要? – jdepypere

+1

永远不会有多余的安全检查。您可能在某个时间头发不好,忘记将检查放在父文件中,但是如果在包含文件中有重复检查,您仍然可以安全使用。 –

回答

0

正如Marc B(见问题的评论)所指出的那样,建议再次检查以防万一我应该忘记它。