Explore all courses in this category.
Explore all courses in this category.
Nguyễn Đình Cường
0 comment
09 Nov, 2026
Một trong những sai lầm đau đầu nhất của người mới là vô tình commit khóa API, mật khẩu database hoặc token lên GitHub. Bots quét repo công khai liên tục, một khóa bị lộ có thể bị lợi dụng trong vài phút. Bài này hướng dẫn cách phòng tránh bằng .gitignore, file .env và các thói quen đúng.
.env.node_modules/, vendor/) vì có thể tái tạo bằng lệnh cài đặt.dist/, build/, *.log)..idea/, .DS_Store, Thumbs.db).File .gitignore ở thư mục gốc liệt kê các mẫu tên file Git sẽ bỏ qua. Ví dụ cho một dự án Node.js:
# Phụ thuộcnode_modules/# Biến môi trường và bí mật.env.env.local*.pem# Build và logdist/build/*.log# IDE và hệ điều hành.idea/.vscode/.DS_StoreMột số mẹo cú pháp: dấu / cuối chỉ thư mục, * khớp nhiều ký tự, ! đứng đầu để loại trừ (không bỏ qua), dòng bắt đầu bằng # là chú thích. Có thể lấy mẫu sẵn theo ngôn ngữ từ kho mẫu .gitignore trên GitHub rồi chỉnh theo dự án.
Nếu bạn đã lỡ commit file trước khi thêm vào .gitignore, Git vẫn tiếp tục theo dõi nó. Để ngừng theo dõi mà vẫn giữ file trên máy:
git rm --cached .envgit commit -m "Ngung theo doi file .env"Nhưng lưu ý lịch sử cũ vẫn chứa nội dung file. Nếu đó là bí mật thật, xem phần xử lý sự cố phía dưới.
Thay vì viết khóa trực tiếp trong code:
// Tệ: bí mật nằm trong mã nguồnconst apiKey = 'sk_live_abcdef123456';Hãy đọc từ biến môi trường:
// Tốtconst apiKey = process.env.PAYMENT_API_KEY;if (!apiKey) {throw new Error('Thiếu biến môi trường PAYMENT_API_KEY');}Khi phát triển trên máy, thường lưu giá trị trong file .env (đã nằm trong .gitignore) và nạp bằng thư viện như dotenv (Node.js), python-dotenv (Python), hoặc tính năng có sẵn của framework (Laravel, Django, Next.js...). Trên server thật, đặt biến môi trường qua cấu hình hệ thống, dịch vụ cloud hoặc công cụ quản lý bí mật.
Đồng đội cần biết dự án cần những biến nào mà không cần giá trị thật. Hãy commit file .env.example:
DB_HOST=localhostDB_NAME=myappDB_USER=DB_PASSWORD=PAYMENT_API_KEY=Người mới clone dự án chỉ việc sao chép thành .env và điền giá trị riêng. Kèm hướng dẫn trong README.
git diff --staged và nhìn nhanh trước mỗi commit.git add . bừa bãi khi chưa chắc trong thư mục có gì; thay bằng git add -p hoặc thêm từng file.git filter-repo hoặc BFG Repo-Cleaner, sau đó force push và báo cho đồng đội clone lại. Việc viết lại lịch sử cần phối hợp cẩn thận.Quy tắc đơn giản: bí mật không bao giờ nằm trong mã nguồn. Hãy dùng .gitignore từ commit đầu tiên, lưu cấu hình riêng trong biến môi trường, chia sẻ file mẫu và thu hồi ngay khi lỡ lộ. Thói quen này bảo vệ cả dự án lẫn túi tiền của bạn.
Nếu muốn học về bảo mật cơ bản và triển khai ứng dụng đúng cách, hãy xem qua các khóa học tại codebem.com.
Nguyễn Đình Cường
0 comment