AI가 만든 코드, 보안 검수 5가지
AI는 빠르지만 보안 실수도 해요. 코드를 몰라도 확인할 수 있는 다섯 가지 체크포인트를 익혀요.
- 바이브 코딩에서 자주 생기는 보안 사고를 안다
- 코드를 몰라도 할 수 있는 보안 점검 다섯 가지를 할 수 있다
- AI에게 보안 검토를 요청할 수 있다
다섯 가지 체크포인트
1. 🔑 비밀 키가 코드에 그대로 있지 않나요?
비밀 키는 코드에 직접 쓰지 않고 환경 변수환경 변수 (Environment Variable)비밀 키처럼 코드에 직접 적으면 안 되는 값을 따로 보관해 두는 설정값이에요.(.env 파일 등)에 따로 보관해요. 그리고 .env 파일은 .gitignore에 넣어서 GitHub에 올라가지 않게 해요.
2. 🚪 데이터베이스 문이 잠겨 있나요? (RLS)
Supabase의 모든 테이블에 RLSRLS (Row Level Security)데이터베이스의 한 줄 한 줄마다 "누가 보고 고칠 수 있는지" 정하는 보안 규칙이에요.가 켜져 있고, “누가 읽고 / 쓰고 / 고치고 / 지울 수 있는지” 규칙이 있는지 확인해요. Supabase 화면에서 RLS가 꺼진 테이블에는 경고가 표시돼요.
3. 🧑⚖️ 중요한 확인을 화면에서만 하고 있지 않나요?
“관리자만 삭제 버튼이 보이게” 하는 것만으로는 부족해요. 화면 코드는 누구나 개발자 도구로 바꿀 수 있어요. 진짜 확인은 서버나 데이터베이스(RLS)에서 해야 해요.
4. ✍️ 입력값을 검사하나요?
방문자가 아주 긴 글, 이상한 코드(<script>)를 넣어도 괜찮은지 확인해요. 글자 수 제한, 그리고 입력한 글을 화면에 표시할 때 코드로 실행되지 않게 처리해야 해요.
5. 🙈 보여 주면 안 되는 정보가 공개되어 있지 않나요?
회원의 이메일·전화번호가 다른 사람에게 보이거나, 개인정보가 담긴 파일이 공개 폴더에 있진 않은지 확인해요.
AI에게 보안 검토 맡기기
내가 다 확인하기 어렵다면, 검토 자체도 Antigravity에게 시킬 수 있어요. 단, 결과를 읽고 직접 확인하는 건 내 몫이에요.
이 프로젝트를 초보자 눈높이로 보안 점검해 줘. 코드는 아직 바꾸지 말고 먼저 보고만 해 줘. 1) 코드나 GitHub에 올라갈 파일에 비밀 키가 들어 있는지 2) Supabase 테이블의 RLS가 모두 켜져 있고 규칙이 적절한지 3) 로그인·권한 확인을 화면에서만 하는 곳이 있는지 4) 사용자가 입력한 글이 화면에 코드로 실행될 위험이 있는지 5) 개인정보가 공개되는 곳이 있는지 각 항목을 안전/주의/위험으로 표시하고, 위험한 것부터 고치는 방법을 알려 줘.
'관리자만 삭제 버튼이 보이도록' 화면만 고쳤어요. 왜 부족할까요?
📝 정리해 볼까요?
- 비밀 키는 환경 변수로 숨기고, GitHub에 올라가지 않게 해요.
- 데이터베이스는 RLS로 "누가 무엇을 할 수 있는지"를 반드시 정해요.
- 중요한 확인(로그인, 권한, 입력값 검사)은 화면이 아니라 서버·데이터베이스에서 해요.
📖 새로 나온 용어
- 환경 변수 Environment Variable
- 비밀 키처럼 코드에 직접 적으면 안 되는 값을 따로 보관해 두는 설정값이에요. 비유: 금고에 따로 보관한 열쇠
- RLS Row Level Security
- 데이터베이스의 한 줄 한 줄마다 "누가 보고 고칠 수 있는지" 정하는 보안 규칙이에요. 비유: 사물함마다 주인만 여는 자물쇠
- 인증 Authentication
- "당신이 누구인지" 확인하는 일이에요. 로그인이 대표적이에요. 비유: 출입증 확인
잘했어요! 완료 표시는 이 브라우저에 저장돼요.