바이브코딩 보안 체크리스트 — 공개 전에 사람이 보는 열 가지
AI는 시키지 않으면 보안을 챙기지 않습니다. 첫 서비스(DB 없음) 기준 일곱 가지, 로그인·DB를 붙였을 때 세 가지 더.
개발자는 보안 교육을 받고 서비스를 만듭니다. 바이브코딩으로 만드는 사람은 대부분 그 교육이 없습니다. 그리고 AI는 시키지 않으면 보안을 알아서 챙기지 않습니다. 그래서 공개 전에 사람이 보는 목록이 필요합니다.
첫 서비스 — DB·로그인 없는 한 페이지
- ☐ 화면에 고객 이름·전화번호·원가·내부 단가 같은 비밀이 없다
- ☐ 기획.md·CLAUDE.md·SKILL.md에도 비밀이 없다 — 폴더째 GitHub에 올라갑니다
- ☐ API 키가 어디에도 들어 있지 않다 — 파일·GitHub·캡처·채팅
- ☐ .env 같은 비밀 파일은 .gitignore로 제외돼 있다
- ☐ GitHub 저장소가 Private이다
- ☐ 없는 후기·숫자·이력·남의 사진·로고를 쓰지 않았다
- ☐ 전화번호·이메일은 명함에 적어도 되는 것만이다
이 일곱 개가 첫 서비스 보안의 거의 전부입니다. 로그인도 DB도 없으니 뚫릴 곳이 "실수로 넣은 정보"뿐입니다. 공개 전 Claude에게 한 번 시킵니다.
Claude에게 이렇게 보내세요
이 서비스를 거래처·직원에게 보내기 전에 점검해줘. 1) 화면이나 폴더 파일에 공개하면 곤란한 정보 (이름·전화번호·원가·API 키)가 있는지 2) 휴대폰 화면에서 깨지거나 겹치는 곳 3) 처음 보는 사람이 헷갈릴 문구 고칠 게 있으면 목록으로 먼저 보여주고, 고치는 건 내 확인을 받은 뒤에 해줘.
점검도 1차는 Claude, 최종 판단은 나.
로그인·DB를 붙였다면 — 세 가지 더
첫 서비스가 실제로 쓰이고 다음 버전에 로그인이나 저장을 붙였다면, 이때부터 진짜 보안입니다. 개념 이름은 몰라도 되지만, 요청문에 넣을 줄은 알아야 합니다.
- ☐ 남의 데이터를 못 보게 막았나. 주소의 번호를 바꿔 다른 사람 것이 보이면 안 됩니다. 요청문: "로그인한 사람은 자기 데이터만 보고 고칠 수 있게 서버 쪽에 접근 제한(RLS)을 걸어줘. 주소의 번호를 바꿔도 남의 것이 안 보여야 해"
- ☐ 입력값을 서버에서 검사하나. 화면에서 막는 건 우회됩니다. 요청문: "모든 입력값은 저장 전에 서버에서 검사하고, 데이터베이스 질의에 사용자 입력을 직접 붙이지 마"
- ☐ 비밀 키가 서버에만 있나. 브라우저에 가는 코드에는 공개용 키만. 요청문: "비밀 키는 환경변수로, 브라우저에 가는 코드에는 절대 넣지 마"
이 셋은 웹 보안에서 가장 흔한 사고 세 가지에 대응합니다. 남의 데이터 보기(권한 검사 누락), 입력값으로 데이터베이스를 조작하기(SQL 인젝션), 키 노출. 이름은 몰라도 요청문 세 줄은 외워 두세요.
더 붙이면 볼 것
- 파일 올리기를 받는다면 — 종류·크기 제한
- 외부 주소를 받는다면 — 허용 목록
- 반복 요청(같은 사람이 초당 수십 번)을 막는 제한
- 오류 화면에 내부 정보(파일 경로·키)가 찍히지 않게
마지막으로
배포한 실제 주소에서 다른 계정(또는 시크릿 창)으로 한 번 써 봅니다. 내 계정으로만 확인하면 권한 문제는 절대 안 보입니다. 그리고 "보안 점검을 해줘"를 공개 전 마지막 요청으로 습관화합니다. 시키면 챙기고, 안 시키면 안 챙깁니다.
더 깊게 — 가이드 17장 · 마케팅 Skill과 공개 전 점검
4주 동안 직접 만들어 보고 싶다면클로드 바이브코딩 기초반 — 매주 화요일 3시간, 문정역 교육센터. 정원 10명, 막힌 화면을 같이 봅니다.일정·수강료 보기 →
같이 읽기
- API 키는 어디에 두나 — 파일·Git·Vercel 환경변수API 키 = 비밀번호. 홈페이지 파일·GitHub·채팅·캡처 어디에도 안 넣습니다. 그럼 어디에? .env와 배포 설정, 그리고 새었을 때 할 일.배포 · 데이터·보안
- 앱의 데이터는 어디에 저장되나 — 브라우저·구글 시트·DBDB 없이 만든 앱의 기록은 그 기기의 브라우저에만 남습니다. 언제 시트로 충분하고 언제 DB가 필요한지, 기준 한 줄.데이터·보안
- 웹앱에 로그인을 붙이기 전에 알아야 할 것로그인은 기능이 아니라 책임입니다. 정말 필요한지, 대안은 없는지, 붙인다면 무엇이 따라오는지. 첫 서비스에서 일부러 빼는 이유.데이터·보안 · 만들기