2분 데모 · 연결 없이 체험
바이브 코딩으로 만든 앱,
겉은 멀쩡했지만…
AI로 빠르게 만든 "AI 글쓰기 도우미"를 검사했습니다. 겉은 멀쩡하지만, 코드 안에는 지금 당장 손봐야 할 큰 구멍이 숨어 있었습니다.
보안 점수 · 100점 만점
지금 당장 고쳐야 할 것
가장 위험한 것부터, 개발을 몰라도 알 수 있게 짚어드립니다.
AI에게 글을 써달라고 시킬 때 쓰는 '회사 계정 비밀번호'(OpenAI API 키)가, 앱을 만든 소스코드 안에 글자 그대로 적혀 있습니다.
방치하면 — 이 키 한 줄이면 남이 우리 회사 이름으로 AI를 마음껏 부를 수 있습니다.
회원 대화기록·결제정보가 담긴 데이터베이스의 "마스터 열쇠"(Supabase service_role 키)가 브라우저로 그대로 전달되고 있습니다.
방치하면 — 이 열쇠는 로그인·비밀번호를 전부 무시하고 데이터베이스 전체를 마음대로 읽고·고치고·지울 수 있습니다.
사용자가 대화 기록에서 검색창에 단어를 입력하면, 그 입력값이 아무 검사 없이 데이터베이스 명령문에 그대로 이어붙여집니다.
방치하면 — 공격자가 검색창에 조작된 문장을 넣으면 자기 것이 아닌 다른 모든 회원의 대화 기록(개인이 AI에게 털어놓은 사업 아이디어, 초안, 개인정보)을 통째로 빼갈 수 있습니다.
발견한 것 전부
항목을 눌러보세요 — 왜 위험한지와 어떻게 고치는지를 쉬운 말로 풀어드립니다.
찾기만 하고 끝? 아니요.
이 데모에서 발견한 문제 중 7건은 고치는 코드까지 만들어 드립니다. “미리보기”를 눌러 실제로 바뀌는 코드를 보세요 — 버튼 하나면 PR이 만들어집니다.
비밀번호 비교를 타이밍 안전 함수(crypto.timingSafeEqual)로 교체
말이 아니라, 실제로 뚫어봤습니다
CORS 설정을 실제 공격자처럼 안전하게(비파괴) 찔러본 결과, 로그인한 사용자의 세션을 다른 사이트가 빌려 쓸 수 있음을 실증했습니다.
말로만 '위험할 수 있다'가 아니라, 실제로 뚫리는 지점을 확인했습니다. 사용자가 로그인한 채 낚시 사이트에 들어가면 그 사이트가 사용자 대신 내앱 API를 호출해 대화기록을 빼갈 수 있습니다.
증거
Origin: https://evil-event.example 로 보낸 교차 출처 요청에 서버가 Access-Control-Allow-Origin: * 와 Access-Control-Allow-Credentials: true 를 함께 응답 → 브라우저가 사용자 쿠키를 실은 요청을 허용.
막는 법 — CORS 허용 출처를 내 앱 도메인으로 한정하면 이 경로가 막힙니다(위 '자동 수정 PR' 중 CORS 항목 참고).
분석 후 코드 사본 즉시 삭제
점검이 끝나면 가져온 레포 사본을 곧바로 지웁니다. 리포트를 보여드리려고 문제의 위치와 주변의 짧은 코드 조각만 점검 기록으로 남깁니다.
보호 브랜치 직접 쓰기 없음 · 시크릿 미저장
수정은 PR로만 제안하고(머지는 당신이 결정), 발견한 키 값 자체는 저장하지 않습니다.
결과는 비공개
점검 결과는 당신에게만 전달합니다. 공개·공유하지 않습니다.
이건 “AI 글쓰기 도우미” 예시예요.
내 앱은 진짜로 지켜드립니다.
GitHub 레포만 연결하면 방금 본 그대로 — 내 앱의 위험을 찾고, 쉬운 말로 설명하고, 고치는 PR까지.
신용카드 불필요 · 5분이면 첫 결과 · 분석 후 코드 사본 즉시 삭제