---
task_id: task-2263
type: checklist
scope: task
created: 2026-04-28
updated: 2026-04-28
status: completed
---

# 체크리스트: task-2263

**task**: task-2263

---

## Phase 1 — 불칸(백엔드)

- [x] A. CRITICAL 1: SSRF 방지 — `_validate_file_url()` 함수 추가 (main.py:170-182)
- [x] B. HIGH 1: JWT verify_signature 수정 — 미들웨어 서명 검증 + 실패 시 스킵 (main.py:225-242)
- [x] C. HIGH 2: JWT verify_aud 수정 — audience="authenticated" 명시 (main.py:728)
- [x] D. HIGH 4: 에러 메시지 일반화 — main.py 5개소 (L1535,1976,2776,4544,4692)
- [x] E. HIGH 4: 에러 메시지 일반화 — mediscan_router.py:223, generation_queue.py:69-79, pipeline.py:138, image_generator.py:100
- [x] F. HIGH 5: subprocess 입력 검증 — `_validate_file_path()` 함수 추가 (main.py:188-197, 적용: L3743,3762)
- [x] G. HIGH 6: 파일 변환 엔드포인트 인증 + Rate Limit (main.py:3383-3385, 3489-3491)
- [x] H. HIGH 3: npm audit fix — jsdom 26.1.0 업데이트, 14→4 HIGH 감소 (나머지 4건 breaking change 필요)

## Phase 2 — 아르고스(테스터)

- [x] A. CRITICAL 2: .env 퍼미션 664→600 수정 완료
- [x] B. CRITICAL 2: 시크릿 하드코딩 전수 확인 — 발견 없음
- [x] C. CRITICAL 2: 로그에 시크릿 출력 확인 — 키 이름만 언급, 값 노출 없음

## 검증

- [x] pytest 477건 통과 (0 failed)
- [x] npm run build 성공 (11.94s)
- [x] L1 스모크테스트 완료 (401 확인, SSRF 검증 9/9)
- [x] QC 검증 완료
- [x] 최종 보고
