PHP တွင် Session သည်အသုံးပြုသူမည်သူမည်ဝါဖြစ်ကြောင်းဖော်ထုတ်ခြင်းနှင့်အချက်အလက်ထိန်းသိမ်းခြင်းကဲ့သို့သောလုပ်ဆောင်မှုများကိုနားလည်သဘောပေါက်ရန်ဘုံယန္တရားတစ်ခုဖြစ်သည်။ ပုံမှန်အားဖြင့်ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုဆာဗာ၏ configuration file ( PHP.ini ) မှထိန်းချုပ်ထားသည် ။
ဤဆောင်းပါးသည် session_start () နှင့်ဆက်စပ်ကြိုတင်ကာကွယ်မှုများမှတစ်ဆင့်ဘဝသံသရာနှင့်သက်တမ်းကုန်ဆုံးချိန်ကိုမည်သို့သတ်မှတ်မည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
session life သံသရာသည်အပိုင်းနှစ်ပိုင်းပါဝင်သည်။
သက်တမ်းကုန်ဆုံးချိန်၏သက်တမ်းကုန်ဆုံးချိန် - browser ကိုပိတ်ပြီးနောက်သင်ခန်းစာအိုင်ဒီကိုဆက်လက်ထိန်းသိမ်းထားသည်ဖြစ်စေ,
ဆာဗာအစည်းအဝေး၏သိုလှောင်မှုအချိန် - ဆိုလိုသည်မှာဆာဗာတွင်သိမ်းဆည်းထားသော session data ၏ရှင်သန်ရပ်တည်ရေးသံသရာဖြစ်သည်။
သင်မျှော်လင့်ထားသည့် session lifecycle အောင်မြင်ရန်နှစ် ဦး စလုံးကိုစနစ်တကျတည်ဆောက်ရန်လိုအပ်သည်။
session_start ကိုမခေါ်မီ () , အောက်ပါလုပ်ဆောင်ချက်နှစ်ခုကို သုံး. session lifecycle ကိုသတ်မှတ်နိုင်သည်။
session_set_cookie_params () - client cookie ၏သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်သည်။
Ini_set ('session.gc_maxlifetime', စက္ကန့်) - server session data ၏အများဆုံးရှင်သန်မှုအချိန်ကိုသတ်မှတ်ပါ။
ဤနေရာတွင် session lifecycle ကို 1 နာရီ (စက္ကန့် 3600 စက္ကန့်) ကိုသတ်မှတ်ခြင်း၏ဥပမာတစ်ခုဖြစ်သည်။
<code> & lt; php // server-side session life cycle ကို 1 နာရီအတွင်း server-seess session life cycle ('session.gc_maxlifetime', 3600) ကိုသတ်မှတ်ပါ။ // client cookie ဘဝသံသရာကို 1 နာရီအထိသတ်မှတ်ပါ
session_set_cookie_params ([
'Lifetime' => 3600,
'PATH' => '/',
'Domain' => 'M66.net',
'Secure' => ဟုတ်မှန်ပါသည်, HTTPS အောက်တွင်သာ cookies များကိုပေးပို့ပါ (လိုအပ်ပါက Enabled)
'Httponly' => ဟုတ်မှန်ပါသည်, // လုံခြုံရေးတိုးတက်စေရန် cookies များကိုရယူရန် JS ကို Disable
'samesite' => 'lax' // CSRF တိုက်ခိုက်မှုများ, optional တန်ဖိုးများ: lax, တင်းကျပ်စွာ,
]);
// session ကိုစတင်ပါ
Session_Start ();
// session variable ကိုသတ်မှတ်ပါ
$ _Session ['user_id'] = 1234;
>
</ code>
session.gc_maxlifetime : ဆာဗာသည် session data ကိုဆက်လက်ထိန်းသိမ်းထားသည့်အချိန်ကိုထိန်းချုပ်သည်။ ပုံမှန်တန်ဖိုးသည်များသောအားဖြင့် 1440 စက္ကန့် (24 မိနစ်) ဖြစ်သည်။
session_cookie_params () ၏ သက်တမ်း parameter သည် client cookie ၏သက်တမ်းကုန်ဆုံးချိန်ကိုဆုံးဖြတ်သည်။ 0 င်လျှင် "browser ကိုပိတ်ပြီးမမှန်ကန်ပါ" ဟုဆိုလိုသည်။
GC_MAXLIFTIMESTIMENE STOP ဆိုလျှင်ပင် PHP ၏အမှိုက်သရိုက်စုဆောင်းမှုယန္တရားသည်သက်တမ်းကုန်ဆုံးတိုင်းသက်တမ်းကုန်ဆုံးသောအစည်းအဝေးကိုမရှင်းလင်းပါ။ ရှင်းလင်းခြင်း၏ဖြစ်နိုင်ခြေကိုအောက်ပါဖွဲ့စည်းမှုပစ္စည်းများဖြင့်ဆုံးဖြတ်သည်။
session.gc_probability = 1
session.gc_divisor = 100
Session Cleanup လုပ်ခြင်း၏ 1% အခွင့်အလမ်းရှိကြောင်းဖော်ပြသည်။ လိုအပ်သလိုချိန်ညှိနိုင်ပါတယ်။
အကယ် . သင်သည် subdomains မျိုးစုံ (ဥပမာ api.m66.net admin admin.m66.net ) ကိုလည်ပတ်နေပါက ,
HTTPS ကိုအသုံးပြုသောအခါ Session Security ကိုတိုးတက်စေရန်အတွက် လုံခြုံသော နှင့် httponly parameters များကိုသေချာစွာသတ်မှတ်ရန်သေချာပါစေ။
ဆာဗာအာကာသကိုရှောင်ရှားရန်ပုံမှန်သက်တမ်းကုန်ဆုံးသော session files များကိုပုံမှန်ဆေးကြောပါ။
ဆင်ခြင်တုံတရား _cookie_params များ နှင့် session.gc_maxlifetime ကိုပြင်ဆင်ခြင်းဖြင့် PHP session ၏ဘဝသံသရာကိုပြောင်းလွယ်ပြင်လွယ်ပြီးအသုံးပြုသူအဆင့်ကိုပိုမိုလုံခြုံစွာနှင့်ထိရောက်စွာစီမံနိုင်သည်။ Session_Start (session_start) မခေါ်မီဤချိန်ညှိချက်များကိုပြုလုပ်ခြင်းသည်စိတ်ကြိုက် session အပြုအမူကိုအကောင်အထည်ဖော်ရာတွင်အဓိကခြေလှမ်းဖြစ်သည်။