.env leak
สมมติว่าเราเผลอ commit ไฟล์ .env ที่มี API key ไปแล้ว และ push ขึ้น GitHub เราต้องรีบลบมันออกทันที เพราะข้อมูลอาจถูกนำไปใช้ได้
สำหรับวิธีการลบ .env file แบบถูกวิธีให้ทำแบบนี้นะครับ พร้อมแล้วไปลุยกันเลยย
.gitignore
ก่อน# .gitignore
.env
.env.*
.env.:* เช่น .env.production .env.local .env.development
แนะนำให้ลองใช้ https://www.toptal.com/developers/gitignore ผมใช้เป็นประจำครับ เป็นเครื่องมือในการช่วยสร้าง gitignore ไฟล์ชั้นดีเลย
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch .env" HEAD
Output
ถ้าลบออกเฉย ๆ ด้วยคำสั่ง git rm -r --cached .env
หรือ rm .env
แล้ว commit ไปใหม่ สิ่งที่จะเกิดขึ้นคือไฟล์จะหายไปแค่ commit ล่าสุดเท่านั้น แต่ถ้าไปดูใน commit history ไฟล์ดังกล่าวจะยังอยู่ครับ
⚠️ คำเตือน: คำสั่งนี้จะเปลี่ยนแปลงประวัติทั้งหมดของ Project ควรแน่ใจว่าไม่มีใครใช้งาน repository นี้อยู่ก่อนจะ push ด้วย --force
git push origin main --force
Result
เพียงแค่นี้ .env
file ก็จะถูกลบออกไปจาก Git ของเราเรียบร้อยแล้วครับ
💡 Tip: ถ้าเคย push .env ขึ้น GitHub, Gitlab, Gitea หรือ Git Platform อื่น ๆ แล้ว อย่าลืมรีเซ็ต API key หรือ Token ที่อยู่ในไฟล์ด้วยนะครับ เพื่อความปลอดภัยสูงสุด