FixVibe

// docs / security guides / claude code checklist

Claude Code 보안 체크리스트: 26가지 항목

Claude Code(Anthropic의 CLI 에이전트)은 슬래시 명령을 통해 전체 코드베이스를 생성하고, 다중 파일 리팩토링을 관리하고, bash를 통해/writes 파일을 읽습니다. 이 체크리스트는 Claude Code의 특정 위험을 대상으로 합니다. 기본 보안 정책이 없고, 속도 제한이 거의 추가되지 않으며, <code>.claude/CLAUDE.md</code>을 보안 가드레일 파일로 사용하고, <code>.env</code> 또는 캐시된 토큰을 커밋할 위험이 있습니다. 비밀, 데이터베이스, 인증, 헤더, 배포 및 Claude Code 관련 문제에 대한 26개 항목입니다.

PRE = 사전 배포(소스 감사). DEPLOY = 배포 시. POST = 배포 후 확인. 항목 참조 FixVibe 해당되는 경우 category.check-id 형식의 ID를 확인하세요.

비밀 및 API 키(5개 항목)

Claude Code은 전체 소스 트리를 읽고 전체 파일을 출력합니다. 컨텍스트의 비밀은 출력에서 ​​비밀이 됩니다.

  1. PRE — Create .claude/CLAUDE.md with security policies. 추가: "Security Rules: service_role 키를 클라이언트 번들에 인라인하지 마십시오. 민감한 작업은 항상 서버 전용 엔드포인트를 통해 라우팅하십시오. NEXT_PUBLIC_* 환경 변수에 안전한 값(키나 토큰 없음)만 포함되어 있는지 확인하십시오." Claude Code는 프로젝트 안내를 위해 .claude/CLAUDE.md로 읽습니다.
  2. PRE — Ensure .env.local is in .gitignore. Claude Code은 리팩터링 중에 실수로 .env.local을 커밋할 수 있습니다. git ls-files .env*을 실행하여 추적된 내용을 확인하세요. .env.local이 있으면 노출됩니다.
  3. PRE — Audit generated API routes for env-var verification. Claude Code은(는) 사용하기 전에 process.env.SECRET이 서버측에 존재하는지 확인하는 것을 종종 잊어버립니다. 환경 변수가 누락된 경우 경로는 빠르게 실패해야 하며 기본값으로 떨어지지 않아야 합니다.
  4. PRE — Check the .claude cache directory. Claude Code은 .claude/cache 또는 .claude/history에 대화 컨텍스트를 캐시합니다. 이러한 파일은 커밋하면 안 됩니다. .gitignore.claude/을 추가합니다.
  5. POST — Run secrets.browser-storage on the deployed app. Claude Code이 키를 인라인한 경우 패시브 스캔은 렌더링된 번들에서 해당 키를 찾습니다.

데이터베이스 접근통제(4항목)

Claude Code은 스키마 생성에 탁월하지만 RLS 정책에는 명시적인 지침이 필요합니다.

  1. PRE — Instruct Claude Code on RLS in .claude/CLAUDE.md. 추가: "모든 마이그레이션에는 ALTER TABLE ... ENABLE ROW LEVEL SECURITYFORCE ROW LEVEL SECURITY이 포함되어야 합니다. 모든 정책은 사용자의 auth.uid()을 검증해야 합니다."
  2. PRE — Review generated migrations for FORCE ROW LEVEL SECURITY. Claude Code은 ENABLE을(를) 생성할 수 있지만 FORCE은(는) 잊어버릴 수 있습니다. FORCE이 없으면 테이블 소유자(마이그레이션 실행자)는 RLS을 우회합니다. 누락된 경우 수동으로 추가하세요.
  3. DEPLOY — Test RLS enforcement after deploy. Supabase Studio를 열고 테이블을 선택한 다음 RLS 토글이 ON인지 확인합니다. Claude Code의 이전에서 FORCE 없이 ENABLE을 사용한 경우 토글은 ON으로 표시되지만 시행은 불완전합니다.
  4. POST — Run the baas.supabase-rls active check. anon 키를 사용하여 쓰기를 시도합니다. 성공하면 RLS이 불완전합니다. 마이그레이션에 FORCE을 추가하고 재배포합니다.

인증 및 세션(4항목)

Claude Code은 인증 흐름을 잘 생성하지만 속도 제한을 자동으로 추가하거나 서버 측에서 모든 토큰 클레임을 확인하지는 않습니다.

  1. PRE — Mandate server-only auth verification in .claude/CLAUDE.md. 추가: "데이터를 변경하는 모든 API 경로는 서버에서 await supabase.auth.getUser()을 사용하여 사용자를 확인해야 합니다. 요청 본문에서 getSession() 또는 사용자 ID을 신뢰하지 마십시오."
  2. PRE — Check generated auth handlers for token expiry. 매직 링크 및 비밀번호 재설정 토큰에는 서버 시행 expires_at이 필요합니다. Claude Code에게 질문하세요. "1시간이 지난 토큰을 거부하는 검사를 추가하세요."
  3. PRE — Verify sign-in redirect guards. next 매개변수 리디렉션은 //이 아닌 /으로 시작해야 합니다. .claude/CLAUDE.md에 추가: "next 매개변수 유효성을 검사합니다. /으로 시작해야 하며, //으로 시작하거나 프로토콜을 포함하는 경우 거부합니다."
  4. POST — Test logout clears cookies. 로그인, 로그아웃 후 애플리케이션 → 쿠키를 확인하세요. 세션 쿠키를 지워야 합니다. 지속되면 로그아웃 엔드포인트가 상태를 삭제하지 않는 것입니다.

HTTP 헤더 및 CSP(3개 항목)

Claude Code은 사용자가 요청하지 않는 한 기본적으로 미들웨어를 생성하지 않습니다.

  1. PRE — Add middleware request to .claude/CLAUDE.md. 포함: "요청별 nonce, HSTS, X-Frame-Options 및 X-Content-Type-Options 헤더를 사용하여 Content-Security-Policy으로 src/middleware.ts을 생성합니다." 그런 다음 Claude Code에게 구현을 요청하세요.
  2. PRE — Verify src/middleware.ts exists and has CSP. Next.js src/ 레이아웃의 경우 미들웨어는 프로젝트 루트가 아닌 src/middleware.ts에 있어야 합니다. CSP 헤더에 'strict-dynamic' 및 nonce가 포함되어 있는지 확인하세요.
  3. POST — Run headers.security-headers on the deployed URL. 검사에서는 누락된 헤더를 보고하고 플랫폼에 대한 수정 사항을 제안합니다.

배포 위생(4개 항목)

Claude Code은 배포 플랫폼을 구성하지 않습니다. 이는 귀하의 책임이지만 확인해 볼 가치가 있습니다.

  1. DEPLOY — Scope env vars per environment in Vercel (or equivalent). 설정 → 환경 변수 → Production에만 각 비밀을 할당합니다. sk_live_*을 Preview 또는 Development와 공유하지 마세요.
  2. DEPLOY — Audit your CI workflow for secret echo. GitHub Actions 또는 다른 CI에 echo $SECRET이 있는 경우 이를 제거합니다. 빌드 로그는 보관됩니다. 로그의 비밀이 손상되었습니다.
  3. DEPLOY — Prefer platform-native secret storage. Vercel의 설정 → 환경 변수가 암호화됩니다. GitHub Actions 비밀은 없는 것보다는 낫지만 플랫폼 기반 저장소와 일치하지 않습니다.
  4. POST — Rotate any key that reached a public build. 키가 Vercel 미리 보기 URL 또는 공개 아티팩트에 단 몇 초 동안 나타나면 키가 손상됩니다. 즉시 회전하십시오.

Claude Code 관련 문제(5개 항목)

Claude Code의 아키텍처 및 작업 흐름에 고유한 패턴:

  1. Claude Code forks work into subagents. 대규모 작업에서 Claude Code은 각각 부분적인 코드베이스 컨텍스트가 있는 여러 하위 에이전트 인스턴스를 생성할 수 있습니다. 한 하위 에이전트가 다른 하위 에이전트에는 없는 비밀 안전 패턴을 환각하면 불일치가 나타납니다. 최종 차이점을 주의 깊게 검토하세요.
  2. Bash operations are unverified. Claude Code bash 명령을 직접 실행합니다. git commit -m "fix"은 편리하지만 작업 디렉터리에 .env 파일이 있고 glob에 해당 파일이 포함되어 있으면 커밋됩니다. Claude Code이 커밋되기 전에 항상 git diff --cached을 검토하세요.
  3. Context window boundaries create gaps. 코드베이스가 큰 경우 Claude Code의 컨텍스트가 여러 창으로 분할될 수 있습니다. 한 창의 .env.local 처리가 다른 창의 처리와 다를 수 있습니다. .claude/CLAUDE.md에서 정책을 시행하고 출력을 확인합니다.
  4. Rate-limiting is almost never added without asking. Claude Code은 작동하는 CRUD을 생성하지만 속도 제한 헤더나 지수 백오프 논리를 거의 포함하지 않습니다. .claude/CLAUDE.md으로 명시적으로 요청하세요.
  5. .claude/CLAUDE.md is read but not enforced. Claude Code은 .claude/CLAUDE.md을 제약 조건이 아닌 힌트로 읽습니다. 힌트가 작업과 충돌하는 경우 Claude Code은(는) 이를 무시할 수 있습니다. 항상 출력을 검토하십시오.

다음 단계

44개 교차 도구 항목에 대해서는 general vibe coding security checklist을 확인한 다음 배포 시간 패턴에 대해서는 step-by-step hardening을 참조하세요. Cursor도 사용하는 경우 Cursor security checklist을 참조하세요.

// scan your app

그만 읽고, 당신 앱의 취약점을 직접 찾아보세요.

URL 추가 — FixVibe은 이 가이드의 모든 수동 검사와 200개 이상의 다른 검사를 1분 이내에 실행합니다. Free, 설치 없음, 카드 없음.

  • Free 계층 — 월 3회 스캔, 카드 없음.
  • URL에 대한 수동 검색 — 도메인 확인이 필요하지 않습니다.
  • Cursor, Claude Code, Lovable, Bolt, v0, Replit에 맞춰 조정되었습니다.
  • Coding-agent prompts for code/config findings, plus operator steps for DNS/provider fixes.
무료 스캔 실행

가입 불필요

Claude Code 보안 체크리스트: 26가지 항목 — Docs · FixVibe