Biến Môi Trường Và Bí Mật (Secrets)
Code của bạn cần các khóa , cơ sở dữ liệu, và . Những thứ này không bao giờ được vào repo của bạn. Một khi một bí mật đã nằm trong lịch sử , nó gần như công khai vĩnh viễn — xóa dòng đó ở một commit sau không xóa nó khỏi lịch sử, và các bot quét các repo công khai mới để tìm khóa bị rò rỉ trong vòng vài phút. Hai quy tắc sẽ giúp bạn đi được một chặng đường dài:
- Giữ các bí mật trong một file
.envcục bộ, và đảm bảo.envnằm trong.gitignorecủa bạn. - Thiết lập cùng những giá trị đó dưới dạng biến môi trường trong bảng điều khiển của nơi lưu trữ (hoặc qua — Command-Line Interface, cửa sổ nhắc lệnh dạng văn bản nơi bạn gõ lệnh thay vì bấm chuột) cho môi trường thực tế.
# .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
Duy trì một file .env.example được commit, liệt kê tên (không phải giá trị) của mọi biến, để tương lai của bạn và AI đều biết ứng dụng cần gì. Chú ý tiền tố sk_test_ ở trên — hãy giữ khóa thử nghiệm (test) và khóa thật (live) của bạn rõ ràng khác biệt, và đừng bao giờ để một khóa thật nằm trong file .env cục bộ mà bạn có thể lỡ dán vào một cuộc trò chuyện chat. Nếu bạn từng dán một bí mật vào chat hoặc lỡ commit nó, hãy coi như nó đã bị lộ và xoay vòng (rotate) nó ngay lập tức: tạo một khóa mới trong bảng điều khiển của nhà cung cấp, cập nhật nó ở mọi nơi, và thu hồi khóa cũ. Việc xoay vòng tốn của bạn năm phút; một URL cơ sở dữ liệu bị rò rỉ có thể khiến bạn mất mọi thứ trong cơ sở dữ liệu đó.