မင်္ဂလာပါ
cookie တွေဆိုတာဘာလည်း
Cookie တွေကို ဘယ်နေရာမှာသုံးနိုင်တာလည်း
tokenတွေအကြာင်းကိုတော့ website မှာတင်ထားပေးပါတယ်။အရင်သွားဖတ်ကြည့်စေချင်ပါတယ်။
Cookie တွေကိုအသုံးပြုပီး sensitive token တွေ ကိုအသုံးပြုနိုင်မလား
ဘယ်လိုသုံးနိုင်မလည်း
စသဖြင့် ဒီခေါင်းတွေပေါ်မူတည်ပီး ဆွေးနွေးပေးပါမယ်။
ဒီ article က web ပေါ်အခြေခံပီးပြောမှာမလို့
authentication logic တချို့က web မှာပဲအကျုံးဝင်မှာပါ
mobile app တွေရဲ့ auth အတွက်အကျုံးဝင်မှာမဟုတ်ပါဘူး
Cookie တွေဆိုတာ web server ကနေ user ရဲ့ computer, browser ထဲမှာသိမ်းထားတဲ့
data အချက်အလက်တချို့ပါ
ဥပမာ mmcoder.com ကနေ ပီး ခင်ဗျားတို့ browser ထဲမှာသိမ်းလိုက်မဲ့အချက်အလက်တွေပါ။
cookie နဲ့သိမ်းလိုက်တဲ့ data အချက်အလက်တွေက expire ရှိပါတယ်
ဆိုလိုတာ server ကနေ ဘယ်အချိန် expire ရှိတယ်ဆိုပီးသတ်မှတ်နိုင်ပါတယ်။
master php course မှာလည်း cookie သေချာရှင်းပြထားပါသေးတယ်(ကြောညာ :P)
Cookie တွေကို ဘယ် domain ကနေပဲ ဒါမှမဟုတ်
ဘယ် webserver ထဲက directory ထဲကပဲ access လုပ်လို့ရမလည်း
ဒီလိုလည်း သတ်မှတ်ထားနိုင်ပါတယ်။
Cookie တွေက user ရဲ့ device ထဲမှာ ဒါမှမဟုတ်
browser ထဲမှာရှိနေတာဖြစ်တဲ့အတွက် ကြည့်လို့ရပါတယ်
javascript မှာ document.cookie နဲ့ကြည့်နိုင်သလို
browser tool ထဲက cookie မှာလည်းကြည့်နိင်ပါတယ်။
Cookie တွေက expire ရှိနေတဲ့အတွက် browser ကိုပိတ်လိုက်သည့်တိုင်အောင်
ဆက်လက်ရှိနေဦးမှာဖြစ်ပါတယ်။
Cookie တွေကိုဘယ်နေရမှာအသုံးပြုနိုင်မလည်း ?
Facebook မှာ keep me login ဆိုတဲ့ check box ကိုလေးကို on ပီး login
လုပ်လိုက်ရင် နောက်တစ်ခေါက် facebook ကိုခေါ်တဲ့အချိန်မှာ fb ကို username,password ထည့်ပီး
login လုပ်စရာမလိုတော့ပါဘူး
ဒီနေရာမှာအသုံးပြုနိုင်ပါတယ်။
ecommerce app တွေမှာဆိုရင် cart itemsတွေကို cookie မှာ သိမ်းနိုင်ပါတယ်။
ဒါဆိုရင် user ကနောင်တချိန် မှာ website ကိုဝင်ကြည့်ရင်
cart item တွေက ရှိနေဦးမှာဖြစ်ပါတယ်။
ဒီ့အပြင် ui/ux အတွက် အချက်အလက်တွေမှတ်ချင်တာ color တွေမှတ်ိထားချင်တာ
စသဖြင့်အသုံးလိုသလို အသုံးပြုနိင်ပါတယ်
caching တွေမှာလည်း cookie ကိုအသုံးပြုနိုင်ပါတယ်။
performace အတွက်ပေါ့
website ကိုခေါ်တဲ့အခါ webserver က database နဲ့ချိတ်ဆက်ပီး data ယူ html file
တစ်ခုကို user or browser စီပြန်ပို့ပေးပါတယ်
ဒါကို user တွေကမြင်ရတယ်ပေါ့
ဒီအချိန်မှာ cookie ထဲကို database က အချက်အလက်တွေသိမ်းလိုက်မယ်ဆိုရင်
နောင်တချိန် website ကိုဝင်တဲ့အခါမျိုးမှာ database ကိုခေါ်စရာမလိုတော့လို့
performace ကောင်းသွားမယ်ပေါ့
(လူပိန်းနားလည်အောင် ပြောပြခြင်းဖြစ်ပါတယ်။)
နောက်တစ်ခုကတော့ single page application တွေမှာ auth token နဲ့ user info တွေ ကို
cookie or localstorage မှာသိမ်းကြပါတယ်။
ဒီနေရာမှာ အပေါ်က cookie တွေ localstorage တွေက browser ရဲ့ developer tool ကနေ
အလွယ်တကူပဲ ကြည့်ရှုနိုင်သလို ပြင်နိုင်ပြုနိုင်ပါတယ်
ဒါဆို auth token တွေ user info တွေက အလကားဖြစ်သွားပါပီ
အဲ့မှာ httpCookie တွေရှိပါတယ်
httpCookie တွေက သတ်မှတ်တဲ့အခါ httpOnly attribute နဲ့သတ်မှတ်လိုက်ခြင်းဖြင့်
server ကနေ လွဲရင်တခြား ဘယ်နေရာမျိုးကနေမဆို ပြင်လို့ဖြတ်လို့မရနိုင်တော့ပါဘူး
ဒီမှာ sensitive information တွေအသုံးပြုနိုင်ပါတယ်
နောက်ထပ် device memory မှာလည်းအသုံးပြုပီးသိမ်းထားနိုင်ပါတယ်။
demo response cookie header content (onlyHttp)
Set-Cookie: reg_fb_gate=deleted; Expires=Thu, 01 Jan 1970 00:00:01 GMT; Path=/; Domain=.example.com; HttpOnly
ဒါပေမဲ့ token တွေကို secure ဖြစ်အောင်နဲ့
app user authorization ကိုထိမ်းဖို့ ဒါနဲ့တင်တော့မလုံလောက်သေးပါဘူး
see you next article guyz 👊