Yii2 သည်ခေတ်မီနည်းပညာနှင့်ဒီဇိုင်းပုံစံများကို အသုံးပြု. ခေတ်မီနည်းပညာနှင့်ဒီဇိုင်းပုံစံများကိုအသုံးပြုသောစွမ်းဆောင်ရည်မြင့်မားသော Open Source PHP framework ဖြစ်သည်။ Yii2 မူဘောင်သည်လုံခြုံရေးကိုအထူးဂရုပြုပြီး 0 က်ဘ်အပလီကေးရှင်းများလုံခြုံရေးကိုသေချာစေရန်လုံခြုံရေးယန္တရားများနှင့်လုပ်ဆောင်မှုများကိုထောက်ပံ့ပေးသည်။
Yii2 မူဘောင်သည်အဆင့်များစွာတွင်ခိုင်မာသောလုံခြုံရေးအထောက်အပံ့များပေးစွမ်းသည်။ အောက်ပါတို့သည်၎င်း၏အဓိကအင်္ဂါရပ်များဖြစ်သည်။
Yii2 သည်အသုံးပြုသူ login, မှတ်ပုံတင်ခြင်း, ခွင့်ပြုချက်စီမံခန့်ခွဲမှုနှင့်အခြားစစ်ဆင်ရေးများကိုလွယ်ကူချောမွေ့စေရန်အတွက်ပြီးပြည့်စုံသောအသုံးပြုသူ authentication နှင့်ခွင့်ပြုချက်ယန္တရားကိုပေးသည်။ ၎င်း၏ authentication ယန္တရားသည် Token အပေါ်အခြေခံသည်။ အသုံးပြုသူအခွင့်အရေးအမျိုးမျိုးကိုထိရောက်စွာထိန်းချုပ်နိုင်သည့်အခွင့်အာဏာထိန်းချုပ်ရေး (RBAC) နှင့် Access control list (acl) ကိုထောက်ခံသည်။
Yii2 မူဘောင်သည်စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းနှင့်ခွင့်ပြုချက်လုပ်ဆောင်ချက်များကိုမြှင့်တင်ရန်တိုးချဲ့ကိရိယာအမျိုးမျိုးကိုထောက်ပံ့ပေးပြီး dektrium / yii2-user သည် အသုံးပြုသောသုံးစွဲသူစီမံခန့်ခွဲမှုတိုးချဲ့မှုတိုးချဲ့မှုဖြစ်သည်။ Yii2-admin ကဲ့သို့သောအခြား extension များက backend စီမံခန့်ခွဲမှုစနစ်ကိုလျင်မြန်စွာတည်ဆောက်ရန်ကူညီနိုင်သည်။
ဒေတာဘေ့စ်လုံခြုံရေးသည်ဝက်ဘ်လျှောက်လွှာလုံခြုံရေး၏အဓိကအချက်ဖြစ်သည်။ Yii2 framework သည် Database Security ယန္တရားကိုအပြည့်အဝထောက်ပံ့ပေးသည်။
// အသုံးပြုActiveRecordသတ်သတ်မှတ်မှတ်အခြေအနေများအောက်တွင်မေးမြန်းခြင်းဒေတာ
$users = User::find()->where(['status' => 1])->all();
// ကရိယာတန်းဆာSQLအသေအချာပေြာဆိုချက်
Yii::$app->db->createCommand('SELECT * FROM user WHERE status=:status')
->bindValue(':status', 1)
->queryAll();
ထို့အပြင် Yii2 မူဘောင်သည် parameter binding, data filtering နှင့် sql injection ကာကွယ်တားဆီးရေးကဲ့သို့သောလုပ်ဆောင်ချက်များကိုလည်းထောက်ပံ့ပေးသည်။
အထိခိုက်မခံသောအချက်အလက်များအတွက် Yii2 မူဘောင်သည်စာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းအထောက်အပံ့ကိုထောက်ပံ့ပေးသည်။ အသုံးအများဆုံးစာဝှက်စနစ် algorithm သည် AES (အဆင့်မြင့်စာဝှက်စနစ်စံ) ဖြစ်သည်။ Yii2 မူဘောင်သည် developer များအားအချက်အလက်ကာကွယ်မှုရရှိရန်အတွက် developer များအားလွယ်ကူချောမွေ့စေရန်တည်ဆောက်ရန် AES encryption နှင့် decryption functions များကိုတည်ဆောက်ထားသည်။
// အသုံးပြုAESစာဝှက်ထားတဲ့ဒေတာ
$encryptedData = Yii::$app->getSecurity()->encryptByPassword('data', 'password');
// အသုံးပြုAESဒေတာကို decrypt
$decryptedData = Yii::$app->getSecurity()->decryptByPassword($encryptedData, 'password');
CSRF (ကွင်းလယ်ကစားစကားတောင်းဆိုခြင်း) တိုက်ခိုက်မှုသည်အသုံးပြုသူတောင်းဆိုမှုများကိုအတုယူခြင်းဖြင့်အသုံးပြုသူအထိခိုက်မခံသောသတင်းအချက်အလက်များကိုခိုးယူသောဝက်ဘ်တိုက်ခိုက်မှုနည်းလမ်းတစ်ခုဖြစ်သည်။ Yii2 မူဘောင်သည်ထိုကဲ့သို့သောတိုက်ခိုက်မှုများကိုထိရောက်စွာရှောင်ရှားနိုင်သည့် built-in CSRF ကာကွယ်ရေးယန္တရားကိုထောက်ပံ့ပေးသည်။ မူဘောင်သည် CSRF အတည်ပြုချက်ကိုပုံမှန်အားဖြင့်ဖွင့်ထားနိုင်ပြီး Developer များကလုံခြုံရေးကိုတိုးတက်စေရန်စစ်ဆေးသူများသို့မဟုတ်ခွဲစိတ်ကုသမှု၏အတည်ပြုယန္တရားယန္တရားကိုပိုမိုပြင်ဆင်နိုင်သည်။
XSS (Cross-site scripting scripting attaching) သည်အသုံးပြုသူအချက်အလက်များကိုခိုးယူသောတိုက်ခိုက်မှုနည်းလမ်းတစ်ခုဖြစ်သည်။ Yii2 မူဘောင်သည်ဖြည့်စွက်ထားသော XSS ကာကွယ်ရေးအစီအမံများကိုဖြည့်ဆည်းပေးနိုင်ပြီး developer များက filterings မှတစ်ဆင့် filtering script in ဆေးထိုးခြင်းများကိုတားဆီးနိုင်သည်။
// အသုံးပြုHtmlPurifierစိမ့်ထွက်HTML,တားဆီးXSSတိုက်ခိုက်ခြင်း
use yii\helpers\HtmlPurifier;
$dirtyHtml = "<script>alert('XSS Attack!')</script>";
$cleanHtml = HtmlPurifier::process($dirtyHtml);
Yii2 သည်ကြီးမားသောလုပ်ဆောင်မှုများနှင့်ထိရောက်သောစွမ်းဆောင်ရည်ကိုပေးရုံသာမကလုံခြုံစိတ်ချရသောလက္ခဏာများလည်းရှိသည်။ ၎င်းသည် authentication နှင့်ခွင့်ပြုချက်ယန္တရား, ဒေတာဘေ့စ်လုံခြုံရေး, စာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်း, CSRF နှင့် XSS Protection တို့ဖြစ်စေ,