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
永遠不會有多餘的安全檢查。您可能在某個時間頭髮不好,忘記將檢查放在父文件中,但是如果在包含文件中有重複檢查,您仍然可以安全使用。 –