Thuta Learning
ရှာဖွေရန်
AdvancedWeb Developmentintermediate

Environment Variables နှင့် Security အခြေခံ

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Server secret နှင့် public variable ကို ခွဲရန်
  • Environment variable ကို startup မှာ validate လုပ်ရန်
  • အခြေခံ production security checklist ရေးရန်

API key ကို Git ထဲမတင်ရုံနဲ့ မလုံလောက်ပါဘူး။ NEXT_PUBLIC_ prefix ထည့်လိုက်တဲ့ variable ဟာ browser bundle ထဲဝင်နိုင်တာကြောင့် secret မဖြစ်တော့ပါဘူး။ Variable ဘယ်မှာသုံးမလဲကို အရင်ဆုံးခွဲရပါတယ်။

နားလည်ထားရမယ့် အချက်

.env.local က local secret အတွက်ဖြစ်ပြီး commit မလုပ်သင့်ပါဘူး။ Server မှာပဲသုံးမယ့် DATABASE_URL ကို prefix မထည့်ဘဲထားပါ။ Browser မှာလိုတဲ့ public analytics id လိုဟာကိုသာ NEXT_PUBLIC_ သုံးပါ။ Missing variable ကြောင့် runtime အလယ်မှာ crash မဖြစ်အောင် app စတင်ချိန် validation လုပ်ပါ။ ထို့အပြင် user input validation၊ output escaping၊ security headers၊ CSP၊ HTTPS နဲ့ dependency security patch များကို production checklist ထဲထည့်ပါ။

အတူတူ စမ်းရေးကြည့်မယ်

typescript
// .env.local (Git ထဲမထည့်ပါနှင့်)
DATABASE_URL="postgres://..."
NEXT_PUBLIC_APP_NAME="Myanmar Notes"

// lib/env.ts
import "server-only";

const databaseUrl = process.env.DATABASE_URL;
if (!databaseUrl) throw new Error("DATABASE_URL is required");

export const env = { databaseUrl };

// .env.example
DATABASE_URL=
NEXT_PUBLIC_APP_NAME=Myanmar Notes

Code က ဘယ်လိုအလုပ်လုပ်သလဲ

env helper က DATABASE_URL မရှိတာကို စောစောပစ်ပေးပါတယ်။ Client Component က ဒီ module ကို import မလုပ်ရပါဘူး။ .env.example မှာ key name သာထားပြီး တန်ဖိုးအစစ်မထားပါ။

You should see
Secret သည် server မှာသာရှိပြီး environment မပြည့်စုံလျှင် startup အချိန်မှာရှင်းလင်းသော error ပေါ်မည်။

၅ မိနစ် စမ်းကြည့်

မိမိ project ရဲ့ environment variables ကို public/server နှစ်စုခွဲပြီး .env.example တစ်ခုဖန်တီးပါ။

Next.js — Environment VariablesNext.js

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • Secret key ကို NEXT_PUBLIC_ prefix ဖြင့်ထားခြင်း
  • .env.local ကို Git ထဲ commit လုပ်ခြင်း

လေ့ကျင့်ခန်း

မိမိ project ရဲ့ environment variables ကို public/server နှစ်စုခွဲပြီး .env.example တစ်ခုဖန်တီးပါ။

You'll know it worked when: Secret သည် server မှာသာရှိပြီး environment မပြည့်စုံလျှင် startup အချိန်မှာရှင်းလင်းသော error ပေါ်မည်။

Environment Variables နှင့် Security အခြေခံ | Thuta Learning