အင်တာနက်ဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဝက်ဘ်ဆိုက်များပိုမိုများပြားလာသည်နှင့်အမျှအသုံးပြုသူမည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုခြင်း function ကိုကျင့်သုံးသည်။ သို့သော်သင်မတူကွဲပြားသော 0 က်ဘ်ဆိုက်တစ်ခုသို့သင်ဝင်ရောက်သည့်အခါတိုင်းသင်၏အကောင့်နှင့်စကားဝှက်ကိုရိုက်ထည့်ရန်လိုအပ်သော်လည်းမေ့လျော့ရန်လည်းလွယ်ကူသည်။ ဤပြ problem နာကိုဖြေရှင်းရန်အတွက် Sign-On (SSO) သည် 0 င်ရောက်လာခြင်းဖြစ်သည်။ SSO သည်အသုံးပြုသူများအား 0 က်ဘ်ဆိုက်များစွာအကြားချောမွေ့စွာ authomble authentication ကိုအောင်မြင်ရန်ခွင့်ပြုသည့်နည်းပညာတစ်ခုဖြစ်သည်။
PHP SSO ၏အဓိကနိယာမသည်အသုံးပြုသူ၏ပထမဆုံး 0 င်ရောက်ခြင်းသည်အောင်မြင်ပြီးအသုံးပြုသူ၏ browser တွင် cookie တွင် token ကိုသိုလှောင်ထားပြီးနောက် Token (Token) ကိုထုတ်လုပ်ရန်ဖြစ်သည်။ ထို့နောက်အသုံးပြုသူသည်အခြားဝက်ဘ်ဆိုက်များသို့လာရောက်သည့်အခါဝက်ဘ်ဆိုက်သည် SSO ဆာဆာဆာဆာဆာဆာဆာဆာဆာဆာဆာသီးကိုတောင်းဆိုလိမ့်မည်။ စိစစ်အတည်ပြုအောင်မြင်သည်နှင့်တပြိုင်နက် SSO ဆာဗာသည်ဆိုက်အတွက်အမှတ်အသားကိုပြသသည်။
PHP SSO ကိုအကောင်အထည်ဖော်သောအခါလုံခြုံရေးသည်အဓိကအချက်ဖြစ်သည်။ ဤနေရာတွင်လုံခြုံစိတ်ချရသောအစီအမံများမှာ -
တိုကင်တစ်ခုကိုထုတ်လုပ်သောအခါ, Safe Differ Number ကိုထုတ်လုပ်ရန်နှင့် base64 encoding မှတဆင့်ကြိုးများသို့ပြောင်းလဲရန် Openssl_random_PSEUDOUTO_BYUTESTES () function ကိုအသုံးပြုရန်အကြံပြုသည်။
Token ကိုစာဝှက်ထားရမည်။ HTTPS နှင့်အခြားလုံခြုံရေး protocols များကို သုံး. ကူးစက်ရမည်။ တိုကင်ကို browser cookie တွင်သိမ်းဆည်းထားသည့်အခါတိုကင်ကိုအန္တရာယ်ရှိသော scripts ဖြင့်ပြန်လည်ရယူခြင်းမှကာကွယ်ရန် Htponly နှင့်လုံခြုံသောဂုဏ်သတ္တိများကိုသတ်မှတ်ထားသင့်သည်။
Token ၏လုံခြုံရေးကိုမြှင့်တင်ရန်အတွက်ပျောက်ဆုံးခြင်းကုန်ဆုံးချိန်ကိုကုန်ဆုံးချိန်၌အချိန်ကုန်သက်သာစေရမည်။ တစ်ချိန်တည်းမှာပင်သက်တမ်းကုန်ဆုံးချိန်နီးကပ်လာသည့်အခါတိုကင်ကိုအလိုအလျောက်လန်းဆန်းစေနိုင်ရန်တိုကင်သက်တမ်းကိုအလိုအလျောက်လန်းဆန်းစေနိုင်သည်ကိုအကောင်အထည်ဖော်ရန်အကြံပြုသည်။
SSO သည်အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေနိုင်သော်လည်းလုံခြုံစိတ်ချရသောအန္တရာယ်များကိုလည်းဖြစ်ပေါ်စေသည်။ ဤနေရာတွင်ဘုံအားနည်းချက်များနှင့်ကြိုတင်ကာကွယ်ရေးနည်းလမ်းများဖြစ်သည်။
အသုံးပြုသူမှတ်တမ်းများ 0 င်ရောက်သောအခါစနစ်သည်ကျပန်း CSRF အမှတ်အသားကိုထုတ်လုပ်ပြီး၎င်းကို session တစ်ခုတွင်သိမ်းထားသင့်သည်။ နောက်ဆက်တွဲတောင်းဆိုမှုများတွင်ဤတိုကင်သည်တောင်းဆိုမှု၏တရားဝင်မှုကိုအတည်ပြုရန်အသုံးပြုသူတောင်းဆိုမှုရှိအမှတ်အသားနှင့်နှိုင်းယှဉ်ရန်လိုအပ်သည်။
session_start();
function generateCSRFToken() {
$token = bin2hex(openssl_random_pseudo_bytes(32));
$_SESSION['csrf_token'] = $token;
return $token;
}
function validateCSRFToken($token) {
return isset($_SESSION['csrf_token']) && $_SESSION['csrf_token'] === $token;
}
အန္တရာယ်ရှိသောဇာတ်ညွှန်းထိုးခြင်းကိုတားဆီးရန်စနစ်သည် Token ကို HTML Page သို့တင်ချိန်တွင်စနစ်သည် HTML experies ကိုလုပ်ဆောင်ရန်လိုအပ်သည်။ XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် HTMLSPECALCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHAR () function ကိုအသုံးပြုရန်အကြံပြုသည်။
$token = generateCSRFToken();
echo htmlspecialchars($token, ENT_QUOTES, 'UTF-8');
Token ကိုအတည်ပြုသည့်အခါတိုကင်ကိုယ်တိုင်ကလိုပဲတောင်းဆိုထားသော IP address နှင့်အသုံးပြုသူကိုယ်စားလှယ်များအားအတည်ပြုရန်တောင်းဆိုမှုကိုတရားဝင်အသုံးပြုသူမှစတင်ရန်သေချာစေရန်အတည်ပြုရမည်။
function validateToken($token) {
return $token === $_SESSION['csrf_token'] &&
$_SERVER['REMOTE_ADDR'] === $_SESSION['ip'] &&
$_SERVER['HTTP_USER_AGENT'] === $_SESSION['user_agent'];
}
အသုံးပြုသူများကိုအဆင်ပြေသော login အတွေ့အကြုံရှိသော PHP SSO System-In နည်းပညာသည်လုံခြုံရေးစိန်ခေါ်မှုများစွာနှင့်ရင်ဆိုင်နေရသည်။ CSRF နှင့် Session Hijacking ကဲ့သို့သောအားနည်းချက်များ, သယ်ယူပို့ဆောင်ရေးနှင့်သက်တမ်းကုန်ဆုံးစီမံခန့်ခွဲမှု၏လုံခြုံရေးကိုအားဖြည့်ခြင်းအားဖြင့် SSR စနစ်၏လုံခြုံရေးကိုသေချာစွာကာကွယ်နိုင်သည်။