AI가 만든 클라이언트 번들에 서버 비밀값이 포함됨
API 키·토큰·데이터베이스 연결 문자열이 브라우저 번들·소스맵·네트워크 응답에 포함되었는지 확인합니다.
빠른 답변
- 우선 확인할 원인
- 브라우저에 전달된 값은 사용자에게 공개된 값입니다. 서버 전용 비밀값은 클라이언트 코드에서 참조하지 않고 서버 경계에서만 사용해야 하며 이미 노출된 값은 교체를 검토해야 합니다.
- 먼저 확인할 항목
- 프로덕션 JavaScript 번들과 소스맵에서 비밀값 이름·접두사·일부 값이 검색되는지 확인합니다.
- 적용 범위
- 현재 증상과 본문에 적은 관찰 조건이 함께 확인된 경우문맥: 바이브 코딩
- 출처 확인일
- 2026-08-04
- 최종 검토
- 2026-08-04
- 수정일
- 2026-08-04
- 정정 이력
- 2026-07-29 이후 기록 없음
현재 증상
- 보안 위험
- 설정 누락
먼저 확인할 항목
프로덕션 JavaScript 번들과 소스맵에서 비밀값 이름·접두사·일부 값이 검색되는지 확인합니다.
Next.js의 NEXT_PUBLIC_ 또는 Vite의 VITE_ 접두사가 붙은 변수에 서버 비밀값을 넣었는지 확인합니다.
브라우저 네트워크 응답·HTML·로그에 값이 포함되는지 확인합니다.
노출이 확인되면 해당 자격 증명의 사용처와 교체 가능 여부를 기록합니다.
피해야 할 조치
주의
- 실제 비밀값을 이슈·로그·검수 파일에 복사하지 않습니다.
- 변수 이름만 바꾸고 이미 배포된 자격 증명을 계속 사용하지 않습니다.
환경별 원인과 조치
확인 순서
- 실제 자격 증명 값 대신 변수 이름과 노출 위치를 기록합니다.
- 프로덕션 번들·소스맵·HTML·네트워크 응답에서 비밀값이 브라우저로 전달되는지 확인합니다.
NEXT_PUBLIC_,VITE_같은 공개 접두사 변수에 서버 전용 값을 넣었는지 찾습니다.- 노출이 확인되면 자격 증명 교체, 사용처 점검, 서버 전용 코드로 이동하는 순서를 정합니다.
브라우저에 전달된 값은 사용자가 볼 수 있다고 가정해야 합니다. 노출된 비밀값을 삭제하거나 마스킹하는 것만으로 과거 노출을 되돌릴 수 없으므로 교체 여부를 별도로 결정하십시오.
참고 자료
Guides: Environment Variables | Next.js (새 창에서 열림)
Next.js · 공식 자료 · 확인 범위: NEXT_PUBLIC_ 접두사가 붙은 변수는 브라우저 JavaScript에 인라인될 수 있으므로 비밀값에 사용하지 않아야 합니다. · 확인일: 2026-08-04
Env Variables and Modes | Vite (새 창에서 열림)
Vite · 공식 자료 · 확인 범위: VITE_ 접두사가 붙은 변수는 클라이언트 소스 코드에 노출되므로 비밀 정보를 담지 않아야 합니다. · 확인일: 2026-08-04