AI로 만든 앱, 대부분 같은 보안 구멍이 있다 — Claude Code 스킬로 잡아낸다
웹 개발과 SEO를 업으로 하며 Claude를 포함한 AI 도구로 개발하라고 고객에게 권하는 사람이, 실제로 넘겨받는 앱 코드를 검토하며 발견한 패턴을 정리했다. , Bolt, Cursor 같은 도구로 만든 앱은 겉보기엔 완성돼 보이지만 URL 하나만 바뀌어도 전체 사용자 데이터가 유출될 수 있는 상태인 경우가 절반이다. 가장 흔한 문제는 테이블에서 행 단위 보안(RLS, Row-Level )이 꺼져 있는 것이다.
이 경우 누구든 사이트를 열어 네트워크 탭에서 를 확인한 뒤, 브라우저에서 곧바로 전체 데이터베이스를 1분 만에 읽고 쓸 수 있다. 두 번째로 흔한 문제는 서버 전용 키인 service_role 키가 VITE_ 접두사가 붙은 채로 클라이언트 번들에 그대로 포함되는 것으로, 이렇게 되면 RLS를 나중에 켜도 이 키가 RLS 자체를 완전히 우회해버린다. 저자는 이것이 AI 도구 자체의 결함이라기보다, 도구가 "작동하게 만드는 것"과 " 노출처럼 정상적인 것"과 "RLS가 꺼진 것처럼 치명적인 것"을 구분해주지 못하는 데서 생기는 문제라고 본다.
이를 반복적으로 확인하는 데 지쳐서, 배포 전에 이 문제를 자동으로 잡아주는 을 만들었다.
핵심 포인트
- 가장 흔한 문제: 테이블의 RLS(행 단위 보안)가 꺼져 있어 만으로 전체 DB를 읽고 쓸 수 있음
- 두 번째 문제: service_role 키가 VITE_ 접두사로 클라이언트에 노출되어 RLS를 완전히 우회함
- 는 '작동하는 앱'은 잘 만들지만 이런 보안 설정 차이는 알려주지 않음
- 이 문제를 배포 전에 자동으로 잡아주는 을 제작함