피드로 돌아가기
The Security First Guide to AI Development: Edge Functions, Rate Limiting, and Supabase
Dev.toDev.to
Backend

The Security First Guide to AI Development: Edge Functions, Rate Limiting, and Supabase

AI 애플리케이션 개발팀이 클라이언트 직접 API 호출 대신 Edge Functions + Supabase 기반 서버 검증 아키텍처로 전환해 API 키 노출 및 토큰 오버차지 위험 제거

Yarley Perez2026년 3월 26일7intermediate

Context

AI 애플리케이션 개발 시 보안을 후순위로 두면 사용자 데이터 침해와 API 키 노출로 인한 토큰 오버차지 문제가 발생한다. 개발자들이 OpenAI, Anthropic, Gemini 등의 API를 클라이언트에서 직접 호출하는 관행은 F12 개발자 도구의 Network 탭에서 API 키를 노출하는 심각한 보안 결함이다.

Technical Solution

  • API 키를 환경 변수(.env)의 서버 사이드에만 저장: NEXT_PUBLIC_ 접두사를 사용하지 않아 클라이언트에서 읽을 수 없게 격리
  • Edge Functions 또는 API Routes를 통해 모든 AI 로직을 서버로 이동: 클라이언트는 서버 엔드포인트만 호출하도록 변경
  • Zod를 사용한 입력 검증 계층 구현: 사용자 입력을 min(3) ~ max(500) 길이로 제한하고 trim() 처리해 Prompt Injection 공격 차단
  • Supabase를 통한 인증 위임: 자체 패스워드/세션 관리 대신 Supabase의 JWT 토큰 기반 인증으로 API 라우트 접근 제어
  • Rate Limiting 구현: 사용자당 분당 요청 횟수 제한(예: 5 requests/분)으로 DoS 공격과 비용 폭주 방지

Key Takeaway

AI 서비스 보안의 핵심은 "클라이언트를 신뢰하지 말 것"이다. 초기 아키텍처 단계에서 Edge Functions + 서버 검증 + 인증 위임 + Rate Limiting을 4개 축으로 삼으면 API 키 노출, Prompt Injection, 비용 폭주 문제를 동시에 해결할 수 있다.


Next.js와 Supabase를 사용하는 AI 애플리케이션 팀에서 클라이언트 직접 호출 방식을 운영 중이라면, Edge Functions로 API 호출 로직을 래핑하고 Zod로 입력을 검증한 후 Supabase의 JWT 인증과 분당 5회 Rate Limiting을 적용하면 API 키 노출 위험을 제거하고 토큰 소비 비용을 통제할 수 있다.

원문 읽기