2013-08-23 57 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(見問題的評論)所指出的那樣,建議再次檢查以防萬一我應該忘記它。