2013-02-04 50 views
2

我有以下措施,確保管理部分網站的管理部分:笨2.1 - 安全爲

  • 內部會議上,我有以下幾個部分:

is_logged_in - >這可以是0或1

管理員 - >檢查用戶是否是管理員或不(值是0或1)

在管理控制器或控制器內部與管理網站有關的任何功能之前,我會調用函數來檢查用戶是否已登錄並且他是管理員?這夠了嗎?如果不是,我可以做些什麼來使管理員部分更安全?會議

+0

沒有答案,但可能對你有用:你看過嗎? http://stackoverflow.com/questions/3819275/what-is-the-best-practice-for-restricting-specific-pages-to-logged-in-users-only – Kamil

+0

所以你只設置一次&檢查它每一頁?如果這就是你正在做的事情,那麼這是不安全的。您必須從數據庫中提取這些值(將會話存儲在db&query中以確保session_id()== $ db-> session_id,並確保從db中檢索is_admin標誌)以這種方式,您可以隨時隨地將用戶踢出去。 – ahmad

回答

3

一個簡單的形式是

$data = array(
    "admin" => $username, 
    "is_logged_in" => true 
); 
$this->session->set_userdata($data); 

但是你可以在會議上也ID存儲(如果需要的話)或別的東西。

如果你要檢查它,你可以做這樣的

if (!isset($this->session->userdata['admin'])) { 
    redirect('admin/login'); // for example 
} 

我喜歡在數據庫存儲會話。

欲瞭解更多,請閱讀 http://ellislab.com/codeigniter/user-guide/libraries/sessions.html

2

你應該看看菲爾鱘魚的博客文章here

當你有一個完整的部分,需要獨立的身份驗證,擴展是CI_Controller會爲您節省大量的代碼,使事情更清潔。