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
?
这可能是一个愚蠢的问题,但为了安全起见,我宁愿在不确定之前采取一定的措施。
$ _SESSION数据保存在纯服务器端。只要你不要做一些愚蠢的事情,比如允许'$ _SESSION [$ _ GET ['key']] = $ _GET ['value']'并让用户直接操纵或影响会话内容,那么不会...他们无法让您的系统包含该文件。 –
因此,第二次检查,在检查的包含文件内没有必要? – jdepypere
永远不会有多余的安全检查。您可能在某个时间头发不好,忘记将检查放在父文件中,但是如果在包含文件中有重复检查,您仍然可以安全使用。 –