2016-04-13 51 views
0

我正在開發自定義CMS的管理系統。在我所有屬於管理站點的頁面上,我使用了check_user()函數。該check_user()函數只做到這一點:

function check_user() 
{ 
    session_start(); 

    if ($_SESSION['username'] == "admin") { 

    } else { 
     header("location:admin.php"); 
    } 
} 

雖然它似乎有點簡單,這是足以讓遠離場所多餘的成員?如何利用$ _SESSION []變數?有什麼建議來改善這個功能?

在此先感謝!

+0

[PHP會話變量安全性如何?](http://stackoverflow.com/questions/1181105/how-safe-are-php-session-variables) – PoX

回答

1

在給定的代碼,$ _SESSION是不可利用IF register_globals處於關閉狀態(這對所有最新的安裝將被關閉...但只是要確定)

雖然根據這些會話參數是如何設置的,它可能被利用。 (例如,使用請求參數作爲會話變量中的鍵)例如,

爲了改進此代碼,我建議始終開始一個會話,獨立於check_user調用。這使您可以重用check_user。

+0

當用戶登錄時,它會被檢查用戶名和密碼是否在同一行的數據庫中。如果是,則$ _SESSION ['用戶名']被設置爲用戶名EG:作爲管理員$ _SESSION ['username']將被設置爲「admin」。 – Zh4rsiest