วิธีลบไฟล์ .env และใช้งาน Antigravity อย่างปลอดภัย


เบรกในความสัมพันธ์

ความสัมพันธ์ระหว่างผมกับ Antigravity ถูกเหยียบเบรก ต้นเหตุคือไฟล์ .env เล็กๆ (จริงเหรอ?) ในโปรเจกต์ฝั่งฟรอนต์เอนด์ ต่อให้ AI อ่านไฟล์ .env มั่วซั่วก็ไม่เป็นไร แต่ .env ของฝั่งแบ็กเอนด์นี่สิ.. เส้นที่เราต้องรักษาระหว่างกันมันถูกขีดไว้ชัดเจนตรงนั้น
ไฟล์ .env ที่แม้แต่ในรีโพซิทอรี Git ก็ยังไม่อัปโหลดขึ้นไป จะมาให้สิทธิ์เข้าถึงตามใจชอบไม่ว่าจะ AI หรืออะไรก็ตามคงไม่ได้

ทดสอบ แล้วก็เจอคำตอบ!

blog placeholder เริ่มจากลองถาม AI ก่อน ว่าค่าตัวแปรใน .env ของผมมีอะไรบ้างนะ.. แล้วมันก็ดึงความลับออกมาให้เสียอย่างนั้น ตอนแรกมันขอสิทธิ์เข้าถึงไฟล์โดยตรง (คงเพราะอยู่ใน .ignore) พอผมปฏิเสธ มันก็ใช้คำสั่ง cat อ่านออกมาซะเลย

ทำได้ยังไง?

blog placeholder โดยพื้นฐานแล้วเอเจนต์มีสิทธิ์เข้าถึงทั้งโฟลเดอร์ และปกติไฟล์ .env ก็อยู่ในโฟลเดอร์นั้น จะให้ขออนุญาตทุกคำสั่งเทอร์มินัลก็ไม่ไหว เพราะพอคำสั่งซับซ้อนขึ้นนิดเดียวมันก็ถามรัวๆ ตลอด เลยต้องอนุญาตคำสั่งง่ายๆ อย่าง cat ที่ใช้อ่านคอนเทกซ์อยู่ดี

เป้าหมายคือ ฆ่า ลบ .env

งั้นก็ลบมันออกจากโฟลเดอร์นี้ไปเลยสิ แล้วทุกครั้งที่แอปพลิเคชันเริ่มทำงาน ก็ให้ดึงค่าเหล่านั้นมาเองจาก Keychain Access ที่ระบบปฏิบัติการ macOS ดูแลอยู่

บทเรียน

.

ข้อจำกัด

แต่นี่ไม่ใช่วิธีที่สมบูรณ์แบบเลยแม้แต่น้อย ยังไงเสีย AI ก็มีสิทธิ์ในโปรเจกต์ และโปรเจกต์ก็ต้องมีไฟล์ .env ถึงจะทำงานได้ตามปกติ ดังนั้นในเชิงโครงสร้างจึงไม่มีทางกันไม่ให้มันอ่านได้แบบสมบูรณ์ ถ้าดูเป็นไดอะแกรมก็คือ:
Antigravity
↓
Project
↓
.env
ในเมื่อโครงสร้างการพึ่งพากันเป็นแบบนี้ ถ้า Antigravity เกิดคิดร้าย (จริงเหรอ?) แล้ว print ออกคอนโซลเพื่ออ่านคอนโซลเอา ก็ไม่มีทางกันได้เลย

GitHub

อันนี้ก็อัปโหลดเป็นรีโพเปิดไว้เช่นกัน ซอร์สโค้ด ดูได้ที่นี่