လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင်အခန်းကဏ် -based ခွင့်ပြုချက်ထိန်းချုပ်ရေးယန္တရားကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း

PHP တွင်အခန်းကဏ် -based ခွင့်ပြုချက်ထိန်းချုပ်ရေးယန္တရားကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း

M66 2025-06-17

PHP တွင်အခန်းကဏ် -based ခွင့်ပြုချက်ထိန်းချုပ်ရေးယန္တရားကိုမည်သို့အကောင်အထည်ဖော်ရမည်နည်း

0 က်ဘ်ဆိုက်တစ်ခုသို့မဟုတ်လျှောက်လွှာကိုတီထွင်သောအခါလုံခြုံရေးသည်အရေးကြီးသောအချက်ဖြစ်သည်။ အသုံးပြုသူများအတွက်သင့်တော်သောခွင့်ပြုချက်များသတ်မှတ်ရန်နှင့်တိကျသောခွင့်ပြုချက်ဖြင့်အသုံးပြုသူများသည်သက်ဆိုင်ရာလုပ်ဆောင်ချက်များနှင့်အရင်းအမြစ်များကို 0 င်ရောက်နိုင်ရန်သေချာစေနိုင်ကြောင်းသေချာစေရန်တည်ဆောက်သူတိုင်းသည် developer တိုင်းလိုအပ်သည်။ အခန်းကဏ် -based ခွင့်ပြုချက်ထိန်းချုပ်မှု (RBAC) သည်သာမန်ခွင့်ပြုချက်စီမံခန့်ခွဲမှုနည်းလမ်းဖြစ်သည်။ ဤဆောင်းပါးသည်အခန်းကဏ် based authentication ကိုထိန်းချုပ်ရန် PHP ကိုမည်သို့အသုံးပြုရမည်ကိုလမ်းညွှန်ပေးပါလိမ့်မည်။

1 ။ အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များ၏အဓိပ္ပါယ်

အခန်းကဏ် ector အခြေပြုခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ခြင်းမပြုမီကျွန်ုပ်တို့သည် "အခန်းကဏ်" နှင့် "ခွင့်ပြုချက်များ၏အယူအဆများကိုရှင်းလင်းရန်လိုသည်။

အခန်းကဏ် system သည်အသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းကိုယ်စားပြုသည်။ ဥပမာအားဖြင့် "administrator", "သာမန်သုံးစွဲသူ" စသည်ဖြင့်အသုံးပြုသူလုပ်ဆောင်နိုင်သည့်အရာများကိုကန့်သတ်ရန်အများအားဖြင့်ကွဲပြားခြားနားသောခွင့်ပြုချက်များပေးသည်။

ခွင့်ပြုချက်များသည် system-defined system ကို သတ်မှတ်. မည်သည့်အရင်းအမြစ်သည်မည်သည့်အရင်းအမြစ်များကိုလုပ်ဆောင်နိုင်သည်သို့မဟုတ်မည်သည့်အရင်းအမြစ်များကိုလုပ်ဆောင်နိုင်မည်ကိုဆုံးဖြတ်သည်။ ခွင့်ပြုချက်များတွင် "ဖတ်ရန်အချက်အလက်", "Modify Data" သို့မဟုတ် "ဒေတာများကိုဖျက်ခြင်း" ပါဝင်နိုင်သည်။

အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များ၏ပေါင်းစပ်ခြင်းအားဖြင့်အသုံးပြုသူများသည်စနစ်၏စစ်ဆင်ရေးခွင့်ပြုချက်ကိုထိရောက်စွာထိန်းချုပ်နိုင်သည်။

2 ။ ဒေတာဘေ့စ်တွင်အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များကိုသိုလှောင်ပါ

အခန်းကဏ် beared ်ဌာန်းထားသောခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ရန်အတွက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်ဒေတာဘေ့စ်တွင်အခန်းကဏ် and နှင့်ခွင့်ပြုချက်အချက်အလက်များကိုသိမ်းဆည်းရန်လိုအပ်သည်။ ကျွန်ုပ်တို့သည်စားပွဲ 2 ခုဖန်တီးနိုင်သည်။ စတိုးဆိုင်များသည်အခန်းကဏ် in ဆိုင်ရာအချက်အလက်များနှင့်အခြားသိုလှောင်မှုများသည်ခွင့်ပြုချက်အချက်အလက်များဖြစ်သည်။ အခန်းကဏ် and နှင့်ခွင့်ပြုချက်ဇယားများကိုဖန်တီးပေးသောဥပမာ SQL ထုတ်ပြန်ချက်တစ်ခုမှာ -

အခန်းကဏ် taker ကိုဖန်တီးပါ။

စားပွဲအခန်းကဏ် create ကိုဖန်တီးပါ (
    ID Int Auto_incrent မူလတန်းသော့,
    NARCHAR (255) NULL NAW NULL
);

ခွင့်ပြုချက်ဇယားကိုဖန်တီးပါ။

ဇယားခွင့်ပြုချက်ဖန်တီးပါ (
    ID Int Auto_incrent မူလတန်းသော့,
    NARCHAR (255) NULL NAW NULL
);

အခန်းကဏ် into မှအခန်းကဏ် in တွင် "NAME" ကို "NAME" အကွက်ကိုသုံးပြီးအခန်းကဏ် name ကိုသိမ်းပိုက်ထားတဲ့နေရာကိုသုံးပြီးခွင့်ပြုချက်နာမည်ကိုသိမ်းထားဖို့ "နာမည်" အကွက်ထဲမှာ "name" ကွက်ကိုသုံးတယ်။

3 ။ အသုံးပြုသူများကိုအခန်းကဏ် and နှင့်ခွင့်ပြုချက်သတ်မှတ်ပါ

အမှန်တကယ် application များအရသင်သည်အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုဖန်တီးရန်သင်ပထမ ဦး ဆုံးလိုအပ်ပြီးအသုံးပြုသူအားအခန်းကဏ် and နှင့်ခွင့်ပြုချက်များကိုသတ်မှတ်ရန်လိုအပ်သည်။

ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်အောက်ပါ SQL ထုတ်ပြန်ချက်များကို အသုံးပြု. အခန်းကဏ် takes များနှင့်ခွင့်ပြုချက်ဇယားများထဲသို့ထည့်သွင်းနိုင်သည်။

အခန်းကဏ် data ကိုထည့်ပါ။

အခန်းကဏ် (အမည်) တန်ဖိုးများ ('admin') ထဲသို့ထည့်ပါ။
အခန်းကဏ် in (အမည်) တန်ဖိုးများ ('user') သို့ထည့်သွင်းပါ။

ခွင့်ပြုချက်အချက်အလက်ထည့်ပါ။

ခွင့်ပြုချက် (အမည်) တန်ဖိုးများ ('Create') သို့ထည့်သွင်းပါ။
ခွင့်ပြုချက်များ ('Read') ခွင့်ပြုချက်များ (အမည်) တန်ဖိုးများကိုထည့်ပါ။
ခွင့်ပြုချက်များ ('update' values ​​('update') ထဲသို့ထည့်ပါ။
ခွင့်ပြုချက် (အမည်) တန်ဖိုးများ ('Delete') ကိုထည့်ပါ။

ထို့နောက်အသုံးပြုသူအားအခန်းကဏ် assign တစ်ခုသတ်မှတ်ရန်လိုအပ်သည်။ အသုံးပြုသူအချက်အလက်များကိုအသုံးပြုသူဇယားတစ်ခုဖွင့ ်. အခန်းကဏ် id ကိုတွဲဖက်ခြင်းဖြင့်သိမ်းဆည်းထားနိုင်သည်။ အသုံးပြုသူဇယားများကိုဖန်တီးခြင်းအတွက် SQL ၏ဥပမာတစ်ခုမှာ -

အသုံးပြုသူဇယားကိုဖန်တီးပါ။

Table အသုံးပြုသူများကိုဖန်တီးပါ (
    ID Int Auto_incrent မူလတန်းသော့,
    Username varchar (255)
    Password Varchar (255) NURLE မဟုတ်ပါ။
    role_id int မဟုတ် NULL
);

ထို့နောက်အောက်ပါဖော်ပြချက်ကို အသုံးပြု. အသုံးပြုသူအချက်အလက်များကိုထည့်ပါ။

အသုံးပြုသူအချက်အလက်များကိုထည့်ပါ။

အသုံးပြုသူများ ('admin_password', 'admin_password', 1),
သုံးစွဲသူများ ('User_Pass_ass', 'user_password', 2) တန်ဖိုးများကိုအသုံးပြုသူများသို့ထည့်ပါ။

4 ။ အခန်းကဏ် -based authentication ကိုနှင့်ထိန်းချုပ်မှုကိုအကောင်အထည်ဖော်ပါ

PHP တွင်အသုံးပြုသူ၏ login status နှင့်အခန်းကဏ် save ၏အခန်းကဏ် save ကိုသိမ်းဆည်းရန် session ကိုသုံးနိုင်သည်။ အသုံးပြုသူမှတ်တမ်းများအပြီးများတွင်သူတို့၏အခန်းကဏ် id တွင်သူတို့၏အခန်းကဏ် id ကိုသိမ်းဆည်းထားပြီး, အခန်းကဏ် id ကိုအကဲဖြတ်ခြင်းဖြင့်ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုအသုံးပြုပါ။

အသုံးပြုသူရဲ့ login status ကိုစစ်ဆေးတဲ့ PHP code signe php code signs: 4 င်း၏အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များ -

// session ကိုစတင်ပါ
Session_Start ();

// အသုံးပြုသူသည် 0 င်ရောက်လျှင် (! is _ _ session ['session [' session]))
    ECHO "log in မ 0 င်ပါ";
    ထွက်ပေါက်;
}

// အသုံးပြုသူအခန်းကဏ် ID ကိုရယူပါ
$ role_id = $ _session ['_SIVE's];

// လျှင် ($ role_id == 1) လျှင်,
    ပဲ့တင်သံ "အုပ်ချုပ်ရေးမှူး, ခွင့်ပြုချက်အားလုံးကိုရယူပါ";
} အခြား ($ role_id == 2) {
    ECHO "သာမန်သုံးစွဲသူ, အချို့သောခွင့်ပြုချက်များနှင့်အတူ";
} အခြား
    ပဲ့တင်သံ "မသိသောအခန်းကဏ်";
    ထွက်ပေါက်;
}

// အသုံးပြုသူခွင့်ပြုချက်ကိုစစ်ဆေးပါ $ ခွင့်ပြုချက် = $ _GET ['ခွင့်ပြုချက်'];

အကယ်. ($ role_id == 1. = ($ role_id == = &&& mary _& in_ on_> on_array (juday)))
    ECHO "{$ ခွင့်ပြုချက်} ခွင့်ပြုချက်";
} အခြား
    ECHO "{$ ခွင့်ပြုချက်ခွင့်ပြုချက်";
    ထွက်ပေါက်;
}

ဤကုဒ်တွင်အသုံးပြုသူသည်လော့ဂ်အင်လုပ်ခြင်းရှိမရှိကို ဦး စွာစစ်ဆေးပြီးသူသည်သုံးစွဲသူ၏အခန်းကဏ် id ကိုအခြေခံသည့်ခွင့်ပြုချက်များကိုဆုံးဖြတ်ပါ။ အမှန်တကယ်လိုအပ်ချက်များအပေါ် အခြေခံ. အခန်းကဏ် and နှင့်ခွင့်ပြုချက်များ၏စီရင်ချက်ဆိုင်ရာယုတ္တိဗေဒကိုသင်စိတ်ကြိုက်ပြုလုပ်နိုင်သည်။

5 ။ အကျဉ်းချုပ်

အခန်းကဏ် -based authentication ကိုထိန်းချုပ်မှု (RBAC) သည်အလွန်ထိရောက်သောခွင့်ပြုချက်စီမံခန့်ခွဲမှုနည်းလမ်းဖြစ်သည်။ ဒေတာဘေ့စ်တွင်အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုသိမ်းဆည်းခြင်းဖြင့်အသုံးပြုသူ၏အခန်းကဏ် and များနှင့်ခွင့်ပြုချက်များကိုဆုံးဖြတ်ရန် PHP code ကိုပေါင်းစပ်ခြင်းအားဖြင့်အသုံးပြုသူတစ် ဦး ချင်းစီသည်မိမိတို့၏ခွင့်ပြုချက်များတွင် 0 င်ရောက်ခြင်းနှင့်လုပ်ဆောင်ခြင်းကိုသာရယူနိုင်သည်။ ဤချဉ်းကပ်နည်းသည်ဖွံ့ဖြိုးတိုးတက်မှုကာလအတွင်းစနစ်၏လုံခြုံရေးနှင့်စီမံခန့်ခွဲမှုများကိုမြှင့်တင်ပေးသည်။