샘플 리포트
Preflight 리포트의 예시입니다. 가상의 노트·이미지 공유 SaaS 사례로, 실제 리포트는 입력한 스택과 기능에 맞춰 이와 같은 형태로 생성됩니다.
샘플 리포트의 가상 앱 맥락
- 스택
- Next.js (App Router) + Supabase (Auth · Storage · Postgres) + Drizzle ORM, Vercel 배포
- 단계
- 출시 전
- 기능
- 인증/로그인사용자 데이터 격리파일 업로드
예시 데이터입니다. 실제 리포트는 인터뷰에서 입력한 스택과 기능에 맞춰 생성됩니다.
사전점검 결과: 전문가 검토 권장
아래는 위험이 큰 기능 영역이라 독립적인 전문가 검토를 권하는 목록입니다. 이번 점검에서 문제가 발견된 곳이라는 뜻은 아닙니다.
- -사용자 데이터를 다루는 SaaS이며 인증·파일 업로드·데이터베이스 직접 노출이 있어 보안 전문가의 추가 검토가 필요합니다
- -RLS 비활성화와 권한 미검증 문제는 실제 환경에서 즉시 악용될 수 있는 critical 수준입니다
BLOCK
지금 당장 수정(2)
.env가 git 히스토리에 커밋된 적 있음
개발자 확인 필요확인됨
지금 .gitignore에 추가했어도 과거에 한 번이라도 커밋됐다면 history에 영원히 남습니다. 회수한 메모지를 누군가 사진으로 찍어뒀다면 막을 수 없는 것과 비슷합니다.
영향: 유출된 키가 즉시 악용 가능하며, 회복하려면 모든 노출 키 회전 + git history rewrite가 필요합니다
git remote가 GitHub 공개 리포인가요, private 리포인가요? 공개라면 자동화 봇에게 이미 스캔됐을 가능성이 높아 회전이 더 시급합니다.
Supabase 테이블에 행 단위 보안(RLS)이 켜져 있지 않음
개발자 확인 필요확인됨
도서관에서 누구나 모든 회원의 대출 기록을 볼 수 있는 것과 같아서, 한 사용자가 다른 모든 사용자의 노트를 조회할 수 있습니다.
영향: 전 사용자의 노트 본문·제목·작성 시각이 비공개 설정과 무관하게 외부에 노출
현재 service_role key를 사용하는 백엔드 코드가 있나요? 그 경로는 RLS를 우회하므로 별도로 권한 체크가 필요합니다.
SOON
출시 전 수정(2)
이미지 업로드 시 파일 종류·크기 검증이 없음
에이전트 수정가능성 높음
택배를 X-ray 검사 없이 전부 받는 것과 같아서, 사용자가 이미지가 아닌 파일이나 거대한 파일을 올려도 그대로 저장됩니다.
영향: 스토리지 비용 폭발, stored XSS 가능성, 다른 사용자에게 악성 파일 제공
현재 SVG 업로드를 허용하고 있나요? 허용한다면 DOMPurify 같은 서버사이드 sanitizer를 거치는지 확인이 필요합니다.
Supabase Auth의 Refresh Token Rotation 설정 미확인
대시보드 확인불확실
갱신 토큰이 회전되지 않으면 한 번 유출된 토큰으로 공격자가 무기한 세션을 유지할 수 있습니다. 만료된 호텔 카드키가 영원히 작동하는 것과 같습니다.
영향: 갱신 토큰이 유출될 경우 공격자가 사실상 무기한으로 사용자 세션을 유지하며 계정 데이터에 접근
현재 운영 중인 활성 세션이 많다면, 회전을 켜는 시점에 일부 세션이 강제 로그아웃될 수 있습니다. 적용 시점과 사용자 안내를 어떻게 잡을지 함께 설계할까요?
EXPERT
불확실 — 전문가 검토 권장(1)
환경 변수 노출 범위를 코드만으로 확인할 수 없음
개발자 확인 필요불확실
금고 비밀번호가 적힌 메모를 어디에 두었는지 파악이 안 되는 상황과 같아서, service_role key가 클라이언트 번들에 섞여 들어갔는지 확신할 수 없습니다.
영향: 최악의 경우 데이터베이스 전체 조회·수정 권한이 외부에 유출
현재 어떤 파일에서 service_role key를 사용하고 있나요? 그 파일이 클라이언트 컴포넌트에서 import되지 않는지 확인이 필요합니다.
LATER
나중에 개선(1)
민감 작업에 대한 감사 로그가 없음
에이전트 수정확인됨
CCTV가 없는 매장처럼, 보안 사고가 났을 때 누가 무엇을 했는지 추적할 방법이 없습니다.