簡體   English   中英

PHP 登錄系統需要幫助

[英]PHP login system help needed

我是 PHP 的新手,我在 PHP 方面沒有太多經驗。我正在嘗試開發基於分層結構的登錄系統。我考慮了實現該系統的各種方法,但我認為最好從有經驗的人那里獲得一些想法像你這樣的程序員。我在下面解釋了我的需求想法。

我需要創建 3 個不同的登錄層,具有不同的權限。Eg.Member、Staff、Admin。這里 admin 應該擁有系統的幾乎所有權限,成員應該有一些權限,而工作人員需要有更多權限。請問可以嗎給我一些想法來實現我的系統。嗯,它可以很復雜,我需要保護它。

我是否必須為不同的用戶使用不同的 function 文件,或者可以使用具有不同權限的相同文件集。

謝謝你。

一般來說,您需要做的是首先確定用戶登錄時的角色。通常這是通過在數據庫中查找用戶來完成的。

然后,將他們的角色隱藏在 session: php 會話

之后,當您要顯示一些只有管理員應該擁有的選項時(例如)檢查 session 以確保他們具有所需的角色。 您應該在實際執行操作時再次檢查角色,以防止攻擊者通過偽造請求執行他們不應該執行的命令。

此外,這一切都應該通過 SSL 連接 (HTTPS) 來完成,以幫助防止攻擊者通過檢查管理員的請求標頭並使用該 Z21D6F40CFB511982E5744 構建自己的請求來劫持另一個用戶的 session

(我也是一個 PHP 初學者,但這應該涵蓋了實現基於角色的安全身份驗證系統的大部分常規內容。希望它有所幫助。)

對於不同的用戶,不必有不同的 function 文件。 有一張表,其中包含有關誰是員工、成員和管理員的詳細信息。 在顯示頁面時,只需在顯示之前檢查每個項目的權限,在執行每個 function 期間還要檢查用戶是否具有執行 function 所需的權限。

class level
{
    const UNCLASSIFIED = 1;
    const CONTROLLED = 2;
    const RESTRICTED = 4;
    const SENSITIVE = 8;
    const CONFIDENTIAL = 16;
    const SECRET = 32;
    const TOPSECRET = 64;
    const CODEWORD = 128;

    const MEMBER = 63; // Everything up to SECRET.
    const STAFF = 127; // Everything up to TOPSECRET.
    const ADMIN = 255; // Everything.

    private $level = NULL;

    public function __get($property) { return $this->$property; }
    public function __set($property, $value) { return $this->$property = $value; }
}

使用逐位運算,您可以為某些訪問情況很常見的人設置預定義級別。 而當您有人需要訪問一種類型的信息而不是另一種類型的信息時,您可以只使用他們需要的訪問級別來設置他們的帳戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM