# task-1955: 인슈로 Phase 0 — 보안 핫픽스 전체 구현

## 배경
인슈로 3문서(memory/plans/insuro-system/) 기준 Phase 0 실행.
전수조사(memory/research/insuro-page-audit.md)에서 발견된 CRITICAL 보안 이슈 4건 + 기타 2건.

## ★ 반드시 먼저 읽을 파일 ★
1. `memory/plans/insuro-system/checklist.md` — Phase 0 섹션
2. `memory/plans/insuro-system/plan.md` — Phase 0 상세
3. `memory/research/insuro-page-audit.md` — 전수조사 (이슈 상세)

## 프로젝트 경로
- `/home/jay/projects/InsuRo/` (Vite + React + TypeScript + Tailwind + Supabase)

## 구현 항목 (6건)

### C1. 테스트 계정 하드코딩 제거 (CRITICAL, Lv.1)
- 파일: `src/pages/Login.tsx` 또는 `src/components/AuthForm.tsx`
- 현상: `test@test.com` / `admin` 하드코딩
- 수정: 테스트 계정 코드 완전 제거. 환경변수로도 남기지 말 것.

### C2. AdminGuide isAdmin 권한 추가 (CRITICAL, Lv.1)
- 파일: `src/pages/AdminGuide.tsx`
- 현상: isAdmin 체크 전무, 모든 로그인 사용자 접근 가능
- 수정: 다른 Admin 페이지(AdminNotices 등)와 동일한 isAdmin 가드 추가

### C3. AdminCrmConfig isAdmin 권한 추가 (CRITICAL, Lv.1)
- 파일: `src/pages/AdminCrmConfig.tsx`
- 현상: PlanGuard(Pro)만 있고 관리자 체크 없음
- 수정: isAdmin (또는 isSystemAdmin) 권한 체크 추가

### C4. CustomerChat 인증 강화 (CRITICAL, Lv.2)
- 파일: `src/pages/CustomerChat.tsx`, 서버 측
- 현상: 이름+전화번호만으로 인증, 토큰 기반
- 수정: 토큰 만료 시간 설정 + rate limit 추가 (무차별 대입 방지)

### M5. Dashboard 깨진 라우트 수정 (Lv.1)
- 파일: `src/pages/Dashboard.tsx` 또는 관련 컴포넌트
- 현상: /tools/health 등 미존재 라우트로 연결
- 수정: 실존 라우트로 수정 또는 제거

### S1. 스텁 페이지 출시 예정 시기 표시 (Lv.1)
- 파일: `src/pages/AiOnestop.tsx`, `src/pages/AiAutomation.tsx`
- 현상: "개발 중" 메시지만
- 수정: "2026년 하반기 출시 예정" 등 구체적 시기 + 출시 알림 등록 CTA

## Phase 0 게이트 (구현 후 검증)
- G0-1: grep으로 test@test.com, admin 하드코딩 잔존 여부 확인
- G0-2: 브라우저에서 일반 사용자로 /admin/guide, /admin/crm 접근 → 차단 확인
- G0-3: 전체 테스트 회귀 없음

## ★ premiumOnly 미완성 디자인은 절대 건드리지 말 것 ★

## 검증 시나리오
1. 로그인 페이지에 테스트 계정 자동입력 없음
2. 일반 사용자 → /admin/guide 접근 → 차단
3. 일반 사용자 → /admin/crm 접근 → 차단
4. CustomerChat 토큰 만료 테스트
5. Dashboard 모든 링크 정상 동작
6. AiOnestop/AiAutomation에 출시 예정 표시

## 레벨
- critical (보안 CRITICAL 4건 포함)

## 프로젝트
- insuro