AI로 만든 앱, 배포 전에 꼭 확인할 보안 체크리스트 7가지
바이브 코딩·AI 코드 생성으로 빠르게 만든 서비스가 놓치기 쉬운 보안 구멍 7가지와, 배포 전에 5분 만에 점검하는 법.
AI 코딩 도구는 아이디어를 하루 만에 서비스로 바꿔줍니다. 하지만 빠른 만큼, 보안은 기본값으로 안전하지 않습니다. 개발자 한 명이거나 개발자가 아예 없는 팀이라면 더욱 그렇습니다. 배포 전에 아래 7가지만 확인해도 흔한 사고의 대부분을 막을 수 있습니다.
1. 하드코딩된 키·비밀번호
API 키, 데이터베이스 비밀번호, 토큰이 코드에 그대로 박혀 있지 않은지 확인하세요. AI는 "일단 동작하는" 코드를 잘 만들지만, 종종 키를 소스에 직접 써 넣습니다. 이 코드가 공개 저장소에 올라가면 몇 분 안에 자동 봇이 키를 수집합니다.
- 키는 환경변수(
.env)로 분리하고,.env는 반드시.gitignore에 추가 - 이미 커밋했다면 키를 폐기하고 재발급 — 히스토리에서 지워도 이미 노출된 것으로 간주
2. 클라이언트에 노출된 비밀
브라우저에서 실행되는 코드(프론트엔드)에 들어간 값은 누구나 볼 수 있습니다. 관리자용 키를 프론트엔드에 넣으면 안 됩니다. NEXT_PUBLIC_ 같은 접두사가 붙은 환경변수에 민감한 값이 없는지 확인하세요.
3. 데이터 접근 권한(인가)
로그인은 됐는데, 남의 데이터를 볼 수 있지는 않나요? URL의 id만 바꾸면 다른 사용자 정보가 보이는 문제(IDOR)는 AI 생성 코드에서 매우 흔합니다. "내 것만 보이는지"를 반드시 테스트하세요.
4. 데이터베이스 행 수준 보안(RLS)
BaaS(노코드/백엔드 서비스)를 쓴다면, 테이블마다 접근 규칙이 켜져 있는지 확인하세요. 기본값이 "전체 공개"인 경우가 있습니다. 익명 사용자가 테이블을 통째로 읽을 수 있는지 직접 확인하는 것이 안전합니다.
5. 취약한 라이브러리
프로젝트가 쓰는 오픈소스 패키지 중에 알려진 취약점(CVE) 이 있는 버전이 섞여 있을 수 있습니다. 최신 안전 버전으로 올리는 것만으로 많은 위험이 사라집니다.
6. 입력값 신뢰
사용자가 입력한 값을 그대로 데이터베이스 쿼리나 시스템 명령에 넣으면 인젝션 공격에 노출됩니다. "사용자 입력은 항상 의심한다" 를 기본 원칙으로 삼으세요.
7. 배포 후에도 계속 점검
한 번 안전하다고 끝이 아닙니다. 코드를 수정할 때마다 새 구멍이 생길 수 있습니다. 푸시할 때마다 자동으로 점검되도록 파이프라인에 검사를 넣으면, 사람이 잊어도 안전망이 남습니다.
이 7가지는 도구 없이도 확인할 수 있지만, 수백 개 파일을 사람이 일일이 보긴 어렵습니다. WhiteHat Code는 GitHub 저장소를 연결하면 위 항목을 자동으로 스캔하고, 문제 위치와 고치는 법을 알려드립니다. 자동 스캔은 무료입니다.