
안녕하세요, 에그코드입니다.
스타트업 MVP를 빠르게 출시하는 과정에서 가장 먼저 뒤로 밀리는 영역이 보안입니다.
저희가 자체 서비스를 직접 운영하며 깨달은 사실이 하나 있습니다.
오히려 보안이 약한 초기 서비스가 자동화된 봇의 첫 번째 표적이 됩니다.
오늘은 MVP 개발 보안에서 가장 자주 마주친 취약점 7가지를 정리해드립니다.
1. 환경변수 그대로 깃에 푸시
.env 파일을 .gitignore에 넣지 않고 그대로 올리는 사례입니다.
API 키와 DB 비밀번호가 공개 저장소에 그대로 노출됩니다.
깃허브는 매일 수십만 건의 시크릿 노출을 자동 감지하고 있습니다.

2. 관리자 페이지 인증 부재
/admin 경로에 단순 로그인만 걸려 있고 권한 검증이 빠진 경우입니다.
URL만 알면 누구나 회원 정보를 조회할 수 있습니다.
3. SQL 인젝션
ORM을 쓰지 않고 문자열로 쿼리를 조립하는 방식이 가장 위험합니다.
' OR 1=1 -- 한 줄로 전체 회원 데이터가 유출됩니다.

4. XSS — 사용자 입력 무방비
게시글이나 댓글에 들어온 <script> 태그를 그대로 렌더링하는 경우입니다.
타 회원의 세션 쿠키가 통째로 탈취됩니다.
5. 파일 업로드 검증 누락
확장자 검사 없이 파일을 받으면 .php, .jsp 셸이 그대로 실행됩니다.
서버 전체가 장악되는 가장 빠른 경로입니다.
한 번 셸이 올라가면 DB와 환경변수까지 전부 털린다고 보는 것이 맞습니다.

6. JWT 시크릿 키 하드코딩
jwt.sign(payload, "secret") 같은 코드가 깃허브에 그대로 올라갑니다.
토큰을 누구나 위조할 수 있게 됩니다.
반드시 환경변수로 분리하고 주기적 로테이션을 설정해야 합니다.
7. CORS 와일드카드 설정
Access-Control-Allow-Origin: * 와 credentials: true 의 조합이 가장 흔한 실수입니다.
타 사이트에서 사용자 세션을 그대로 가져갈 수 있습니다.

이 7가지는 MVP 개발 보안 점검의 가장 기본 항목입니다.
마치며
MVP 개발 보안은 출시 후가 아니라 첫 줄의 코드부터 시작됩니다.
저희 에그코드는 자체 서비스를 운영하며 위 7가지를 모두 한 번씩 겪었습니다.
그래서 이제는 SI 개발에서도 설계 단계부터 위 7가지를 기본 체크리스트로 점검합니다.
혹시 챗GPT나 클로드로 코드를 만들고 계시다면, 더 위험한 함정이 따로 있습니다.
AI가 만든 코드의 5가지 보안 함정
AI 코딩 보안, 챗GPT로 만든 사이트가 해킹당하는 진짜 이유 5가지