Bảo vệ file .env và dotfiles nhạy cảm trên Nginx
Bảo vệ file .env và dotfiles nhạy cảm trên Nginx
Vì sao cần quan tâm?
File .env có thể chứa database password, API token, secret key và thông tin môi trường. Nếu bị truy cập công khai, hậu quả có thể vượt xa việc lộ mã nguồn.
Quy trình xác minh
- Xác định virtual host đang phục vụ domain cần kiểm tra.
- Kiểm tra cấu hình Nginx hiệu lực, bao gồm các file được
include. - Rà soát
location,root,alias,try_filesvà quy tắc xử lý file ẩn. - Kiểm tra phản hồi bằng một request không chứa bí mật thực.
- Xác minh kết quả là bị chặn ở đúng lớp, không chỉ do CDN/WAF chặn trước origin.
- Kiểm tra log và lặp lại thử nghiệm sau reload cấu hình.
Nguyên tắc phòng vệ
- Không đặt secret trong webroot nếu có thể tránh.
- Chặn truy cập đến dotfiles không dành cho public, ngoại trừ những trường hợp có chủ đích như một số file xác minh.
- Dùng quyền filesystem tối thiểu cần thiết.
- Không dựa duy nhất vào việc URL trả về
403; cần xác minh origin và cấu hình thực tế. - Nếu secret từng có khả năng bị lộ, hãy xoay vòng credential liên quan.
Kiểm tra sau thay đổi
- Cấu hình hợp lệ trước khi reload.
- URL kiểm tra trả về trạng thái dự kiến.
- Ứng dụng vẫn hoạt động bình thường.
- Log không cho thấy lỗi mới.
- Secret có nguy cơ bị lộ đã được thay mới.
Ghi chú
Ví dụ cấu hình cần được điều chỉnh theo cấu trúc server/location thực tế. Tránh sao chép quy tắc chặn quá rộng nếu ứng dụng cần phục vụ một số file bắt đầu bằng dấu chấm.