လွယ်လွယ်ပြောရရင် Security Headers ဆိုတာ Website ရဲ့ Server က Browser ကို ပို့ပေးတဲ့ “ဒီလိုကာကွယ်ပါ” ဆိုတဲ့ ညွှန်ကြားချက်လေးတွေပါ။ ကိုယ်က Website တစ်ခုကို ဖွင့်လိုက်တဲ့အခါ Server က စာမျက်နှာအပြင် ညွှန်ကြားချက်လေးတွေကိုပါ အတူတူပို့ပေးတယ်။ Browser က အဲဒီညွှန်ကြားချက်တွေကို ဖတ်ပြီး စာမျက်နှာကို ဘယ်လိုပြရမယ်၊ ဘာကို ခွင့်ပြုရမယ်၊ ဘာကို တားရမယ်ဆိုတာ ဆုံးဖြတ်တယ်။ အရေးကြီးတာက ဒါကို Website ပိုင်ရှင်ဘက်က လုပ်ရတာပါ — ကိုယ်က သာမန်ကြည့်ရှုသူအနေနဲ့ ဘာမှ ထည့်စရာမလိုဘူး။
ကျွန်တော် ဒါကို အိမ်စောင့်ကို မှာထားတဲ့ ညွှန်ကြားချက်နဲ့ ယှဉ်ပြီးတွေးတယ်။ အိမ်ရှင်က အိမ်စောင့်ကို “ဒီလူကိုပဲ ဝင်ခွင့်ပေး၊ ဒီတံခါးကိုတော့ အမြဲသော့ခတ်ထား၊ သူစိမ်းပေးတဲ့အထုပ်ကို အိမ်ထဲ မသွင်းနဲ့” လို့ မှာထားသလိုပေါ့။ Security Headers ကလည်း Browser ဆိုတဲ့ အိမ်စောင့်ကို အဲဒီလို မှာထားတာပါ။ တိုက်ခိုက်သူတစ်ယောက်က Website မှာ တစ်ခုခု ထူးဆန်းတာ လုပ်ဖို့ ကြိုးစားရင်တောင် Browser က ညွှန်ကြားချက်အတိုင်း တားပေးနိုင်တယ်။
အရေးအကြီးဆုံး Headers ၅ ခု
Content-Security-Policy (CSP) — စာမျက်နှာက ဘယ် Source ကလာတဲ့ Code ကိုပဲ Run ခွင့်ပြုမယ်ဆိုတာ သတ်မှတ်တယ်။ ဥပမာ “ကိုယ့် Server ကလာတဲ့ JavaScript ပဲ Run ပါ၊ တခြားနေရာကလာတာကို မယုံနဲ့” လို့ မှာထားရင် XSS တိုက်ခိုက်မှု အများစုကို တားနိုင်တယ်။ XSS အကြောင်း အရင်က ရေးခဲ့ဖူးပါတယ်။
Strict-Transport-Security (HSTS) — Browser ကို “ဒီ Site ကို အမြဲ HTTPS နဲ့ပဲ ဖွင့်” လို့ မှာတယ်။ တိုက်ခိုက်သူက HTTP အတုနဲ့ လှည့်စားဖို့ ကြိုးစားရင်တောင် Browser က လက်မခံတော့ဘူး။
X-Frame-Options — တခြား Site တွေက ကိုယ့် Site ကို iframe ထဲ ထည့်ပြီး ပြလို့ မရအောင် တားတယ်။ ဒါက Clickjacking တိုက်ခိုက်မှုကို ကာကွယ်ပေးတယ်။ Clickjacking အကြောင်းလည်း အရင်က ရေးခဲ့ဖူးပါတယ်။
X-Content-Type-Options — Browser က ဖိုင်အမျိုးအစားကို ကိုယ်တိုင် မှန်းဆပြီး ပြောင်းဖွင့်တာကို တားတယ်။ ဥပမာ ရိုးရိုးစာဖိုင်ကို Code အဖြစ် မှားဖွင့်မိတာမျိုး မဖြစ်အောင်ပါ။
Referrer-Policy — ကိုယ့် Site ကနေ တခြား Site ကို Link နှိပ်ပြီး သွားတဲ့အခါ ဘယ် URL ကနေ လာလဲဆိုတဲ့ သတင်းကို ဘယ်လောက်ပေးမယ်ဆိုတာ ထိန်းတယ်။ Privacy အတွက် အရေးပါတယ်။
ဒီ Headers တွေက တစ်မျိုးတည်းနဲ့ Website ကို လုံးဝ လုံခြုံသွားစေတာ မဟုတ်ဘူး။ လုံခြုံရေးမှာ အလွှာများများ ရှိတဲ့အထဲက တစ်လွှာပါ။ ဒါပေမယ့် ထည့်ရတာ လွယ်ပြီး အကျိုးများပါတယ်။ Server ရဲ့ Setting မှာ စာကြောင်းအနည်းငယ် ထည့်ရုံပဲ။ ဒါကြောင့် ကျွမ်းကျင်တဲ့ Developer တွေက ဒါကို အခြေခံအကျဆုံး အဆင့်တစ်ခု အဖြစ် သတ်မှတ်ကြတယ်။
ကိုယ့် Site မှာ ရှိ/မရှိ ဘယ်လိုစစ်မလဲ?
ကိုယ့် Website ရှိတဲ့သူဆိုရင် ဒီလိုစစ်လို့ရပါတယ်။
securityheaders.com ဆိုတဲ့ Site ကို ဖွင့်ပြီး ကိုယ့် URL ကို ထည့်စစ်ပါ။ ဘယ် Header ရှိတယ်၊ ဘယ်ဟာ လိုနေတယ်ဆိုတာ အမှတ်နဲ့တကွ ပြပေးပါတယ်။
Browser ရဲ့ Developer Tools (F12) ဖွင့်ပြီး Network Tab မှာ စာမျက်နှာကို Refresh လုပ်ပါ။ Response Headers ဆိုတဲ့နေရာမှာ Server ပို့တဲ့ Headers တွေ အားလုံးကို မြင်ရပါလိမ့်မယ်။
စစချင်းမှာ CSP ကို တင်းတင်းကျပ်ကျပ် မသတ်မှတ်ဘဲ Report-Only Mode နဲ့ အရင်စမ်းပါ။ တကယ် Block မလုပ်ဘဲ ဘာတွေ Block မိမလဲဆိုတာပဲ အစီရင်ခံခိုင်းတာပါ။ ပြီးမှ ဖြည်းဖြည်းချင်း တင်းကျပ်သွားပါ။ မဟုတ်ရင် ကိုယ့် Site ရဲ့ ပုံတွေ၊ Script တွေ အလုပ်မလုပ်တော့ဘဲ ပျက်သွားနိုင်ပါတယ်။
သာမန်အသုံးပြုသူအနေနဲ့ကတော့ Security Headers ကို ကိုယ်တိုင် ထည့်စရာမလိုဘူး။ ဒါပေမယ့် သိထားဖို့ကောင်းတာက ဒီတစ်ခုပါ — ကိုယ့်သုံးတဲ့ Website တွေက ဒီ Headers တွေကို သုံးထားရင် Browser က ကိုယ့်ကို တိတ်တိတ်လေး ကာကွယ်ပေးနေတာပါ။ ပြီးတော့ ကိုယ့် Browser ကို အမြဲ Update လုပ်ထားဖို့က အရေးကြီးတယ်။ Header ညွှန်ကြားချက်တွေကို နားလည်ပြီး လိုက်နာပေးနိုင်တာ Update ဖြစ်တဲ့ Browser တွေပဲ ဖြစ်လို့ပါ။
Website လုံခြုံရေးဆိုတာ Firewall တစ်ခုတည်း၊ Password တစ်ခုတည်းနဲ့ ပြီးသွားတဲ့ကိစ္စ မဟုတ်ဘူး။ Server, Browser, User ဆိုတဲ့ သုံးဖက်လုံး ပေါင်းပြီး ကာကွယ်ရတာပါ။ Security Headers ကတော့ Server က Browser ကို “ကိုယ့်သုံးစွဲသူကို ဒီလိုကာပေးပါ” လို့ တိုးတိုးလေး မှာလိုက်တဲ့ ညွှန်ကြားချက်လေးတွေပါပဲ။ 🙂
—