~/VibeHandbook
PDF ฟรี

บท 16 · 03

ตัวแปรสภาพแวดล้อมและความลับ (Environment Variables and Secrets)

โค้ดของคุณต้องการ key, ฐานข้อมูล และโทเคนต่าง ๆ สิ่งเหล่านี้ ต้อง ไม่ถูก เข้ารีโพเด็ดขาด เมื่อความลับหลุดเข้าไปในประวัติ แล้ว มันก็เท่ากับเปิดเผยต่อสาธารณะตลอดไปโดยพฤตินัย — การลบบรรทัดนั้นออกใน commit ทีหลังไม่ได้ ลบ มันออกจากประวัติจริง ๆ และบอตที่คอยสแกนหารีโพสาธารณะใหม่ ๆ เพื่อหา key ที่หลุดออกมานั้นทำงานเร็วภายในไม่กี่นาที กฎสองข้อนี้จะพาคุณไปได้ไกล:

  • เก็บความลับไว้ในไฟล์ .env บนเครื่องเท่านั้น และตรวจให้แน่ใจว่า .env อยู่ใน .gitignore ของคุณ
  • ตั้งค่าค่าเดียวกันเป็นตัวแปรสภาพแวดล้อมในแดชบอร์ดของโฮสต์คุณ (หรือผ่าน — Command-Line Interface หรือหน้าต่างพรอมป์ข้อความที่คุณพิมพ์คำสั่งแทนการคลิก) สำหรับ production
# .env  (local only — never commit this)
DATABASE_URL=postgres://localhost:5432/app
STRIPE_SECRET_KEY=sk_test_xxx
SESSION_SECRET=change-me

# Set the production equivalents on the host
wrangler secret put STRIPE_SECRET_KEY
vercel env add STRIPE_SECRET_KEY production

รักษาไฟล์ .env.example ที่ commit ไว้ ซึ่งแสดงรายการ ชื่อ (ไม่ใช่ค่า) ของตัวแปรทุกตัว เพื่อให้ตัวคุณในอนาคตและ AI รู้ว่าแอปคาดหวังอะไรบ้าง สังเกตคำนำหน้า sk_test_ ด้านบน — ให้แยก key ทดสอบกับ key จริงให้แยกแยะออกจากกันชัดเจน และอย่าปล่อยให้ key จริงอยู่ใน .env บนเครื่องที่คุณอาจเผลอวางลงในแชท ถ้าคุณเคยวางความลับลงในแชท หรือ commit มันเข้าไปโดยไม่ได้ตั้งใจ ให้ถือว่ามันถูกเปิดเผยแล้วและหมุนเวียน (rotate) มันทันที: สร้าง key ใหม่ในแดชบอร์ดของผู้ให้บริการ อัปเดตทุกที่ที่ใช้มัน แล้วเพิกถอน key เก่า การหมุนเวียนใช้เวลาแค่ห้านาที แต่ URL ฐานข้อมูลที่หลุดออกไปอาจทำให้คุณเสียทุกอย่างที่อยู่ในฐานข้อมูลนั้น

อยากได้แบบออฟไลน์?

ดาวน์โหลดหนังสือทั้งเล่มเป็น PDF หรือ EPUB — ฟรี