본문 바로가기
Tumen Security

🔎 데모 · 가짜 앱 “AI 글쓰기 도우미”의 예시 결과입니다 — 내 코드 연결 없이 둘러보세요.

무료로 내 앱 검사받기

2분 데모 · 연결 없이 체험

바이브 코딩으로 만든 앱,
겉은 멀쩡했지만…

AI로 빠르게 만든 "AI 글쓰기 도우미"를 검사했습니다. 겉은 멀쩡하지만, 코드 안에는 지금 당장 손봐야 할 큰 구멍이 숨어 있었습니다.

치명 2 높음 4 보통 2· AI 글쓰기 도우미 (Next.js · Supabase · OpenAI · Toss 결제) · 39초 만에 검사
보안 점수 100점 중 38점, D등급

보안 점수 · 100점 만점

지금 당장 고쳐야 할 것

가장 위험한 것부터, 개발을 몰라도 알 수 있게 짚어드립니다.

1

AI에게 글을 써달라고 시킬 때 쓰는 '회사 계정 비밀번호'(OpenAI API 키)가, 앱을 만든 소스코드 안에 글자 그대로 적혀 있습니다.

방치하면 — 이 키 한 줄이면 남이 우리 회사 이름으로 AI를 마음껏 부를 수 있습니다.

2

회원 대화기록·결제정보가 담긴 데이터베이스의 "마스터 열쇠"(Supabase service_role 키)가 브라우저로 그대로 전달되고 있습니다.

방치하면 — 이 열쇠는 로그인·비밀번호를 전부 무시하고 데이터베이스 전체를 마음대로 읽고·고치고·지울 수 있습니다.

3

사용자가 대화 기록에서 검색창에 단어를 입력하면, 그 입력값이 아무 검사 없이 데이터베이스 명령문에 그대로 이어붙여집니다.

방치하면 — 공격자가 검색창에 조작된 문장을 넣으면 자기 것이 아닌 다른 모든 회원의 대화 기록(개인이 AI에게 털어놓은 사업 아이디어, 초안, 개인정보)을 통째로 빼갈 수 있습니다.

발견한 것 전부

항목을 눌러보세요 — 왜 위험한지어떻게 고치는지를 쉬운 말로 풀어드립니다.

찾기만 하고 끝? 아니요.

이 데모에서 발견한 문제 중 7건은 고치는 코드까지 만들어 드립니다. “미리보기”를 눌러 실제로 바뀌는 코드를 보세요 — 버튼 하나면 PR이 만들어집니다.

prcard_code_fixprcard_conf_label#41

하드코딩된 OpenAI 키를 환경변수(process.env)로 교체

prcard_merge_github
prcard_code_fixprcard_conf_label#42

service_role 키를 브라우저에서 제거하고 서버 전용 환경변수로 교체

prcard_merge_github
prcard_code_fixprcard_conf_label#43

검색어를 매개변수 바인딩으로 처리해 SQL 인젝션 차단

prcard_merge_github
prcard_code_fixprcard_conf_label#44

관리자 API 첫 줄에 로그인·권한 확인 추가

prcard_merge_github
prcard_dep_updateprcard_conf_label#45

Next.js 및 취약 의존성을 보안 패치 버전으로 업그레이드

prcard_merge_github
prcard_code_fixprcard_conf_label#46

CORS 허용 도메인을 우리 앱 주소로만 제한

prcard_merge_github
prcard_code_fixprcard_conf_label#47

비밀번호 비교를 타이밍 안전 함수(crypto.timingSafeEqual)로 교체

prcard_merge_github

말이 아니라, 실제로 뚫어봤습니다

CORS 설정을 실제 공격자처럼 안전하게(비파괴) 찔러본 결과, 로그인한 사용자의 세션을 다른 사이트가 빌려 쓸 수 있음을 실증했습니다.

말로만 '위험할 수 있다'가 아니라, 실제로 뚫리는 지점을 확인했습니다. 사용자가 로그인한 채 낚시 사이트에 들어가면 그 사이트가 사용자 대신 내앱 API를 호출해 대화기록을 빼갈 수 있습니다.

증거

Origin: https://evil-event.example 로 보낸 교차 출처 요청에 서버가 Access-Control-Allow-Origin: * 와 Access-Control-Allow-Credentials: true 를 함께 응답 → 브라우저가 사용자 쿠키를 실은 요청을 허용.

막는 법 — CORS 허용 출처를 내 앱 도메인으로 한정하면 이 경로가 막힙니다(위 '자동 수정 PR' 중 CORS 항목 참고).

분석 후 코드 사본 즉시 삭제

점검이 끝나면 가져온 레포 사본을 곧바로 지웁니다. 리포트를 보여드리려고 문제의 위치와 주변의 짧은 코드 조각만 점검 기록으로 남깁니다.

보호 브랜치 직접 쓰기 없음 · 시크릿 미저장

수정은 PR로만 제안하고(머지는 당신이 결정), 발견한 키 값 자체는 저장하지 않습니다.

결과는 비공개

점검 결과는 당신에게만 전달합니다. 공개·공유하지 않습니다.

이건 “AI 글쓰기 도우미” 예시예요.
내 앱은 진짜로 지켜드립니다.

GitHub 레포만 연결하면 방금 본 그대로 — 내 앱의 위험을 찾고, 쉬운 말로 설명하고, 고치는 PR까지.

무료로 내 앱 검사받기

신용카드 불필요 · 5분이면 첫 결과 · 분석 후 코드 사본 즉시 삭제