보안
.env 파일이 브라우저에서 그대로 열리는 이유와 막는 법
.env 파일에는 보통 DB 접속 정보, API 키, 결제 시크릿 키가 들어 있습니다. 로컬 개발에서는 문제없이 동작하지만, 배포 설정에 따라 이 파일이 그대로 웹에 공개되는 경우가 있습니다.
왜 노출되나
- 정적 사이트 배포 시 빌드 산출물 폴더에
.env가 실수로 포함된 경우 - 서버 설정에서 dotfile(점으로 시작하는 파일)에 대한 접근 차단이 빠진 경우
- Git 저장소를 통째로 배포 폴더로 쓰면서
.gitignore가 배포 시점엔 적용 안 되는 경우
5분 안에 직접 확인하는 방법
브라우저 주소창에 아래 형태로 직접 접속해봅니다. 200 응답과 함께 텍스트 내용이 보이면 노출된 것입니다.
| 확인 경로 | 기대 결과 |
|---|---|
https://내도메인/.env | 404 또는 접근 거부여야 정상 |
https://내도메인/.git/config | 404여야 정상 |
https://내도메인/.env.local | 404여야 정상 |
배포 플랫폼별 대응
Vercel/Netlify류 정적 배포: .env가 빌드 출력 폴더(dist, public 등) 안에 들어가지 않도록 하고, 빌드 전 .gitignore·배포 무시 목록에 포함시킵니다.
서버 직접 운영: Nginx/Apache 설정에서 점(.)으로 시작하는 파일 접근을 명시적으로 차단합니다.
중요 — 이미 노출된 적이 있다면 파일을 지우는 것만으로는 부족합니다. 그 안에 있던 키·비밀번호는 이미 유출된 것으로 간주하고 전부 재발급해야 합니다.
공식 참고 자료
Vercel에 저장한 환경변수도 브라우저 번들을 확인하세요
.env 파일 자체가 404여도 NEXT_PUBLIC_이나 VITE_ 접두사의 값은 빌드된 자바스크립트에 포함될 수 있습니다. Vercel의 Production·Preview 환경 분리, Sensitive 설정, 재배포와 유출 키 교체 순서는 Vercel 환경변수 보안 체크리스트에서 이어서 확인하세요.