📖 star365 Docs
← 보고서 목록

starium.site 정밀 점검 감사 (2026-07-18)

hospital hospital_web (Next 16.0.7 · React 19.2 · 110 페이지 AI 건강관리 플랫폼). 8병렬 감사 + GitHub 최신자료 리서치. 309 findings (P1 61 · P2 116 · P3 132). 배포=docker 이미지(blue-green).

방법

페이지를 8섹션으로 나눠 병렬 정밀 감사(admin·auth·commerce·dashboard·conscious·clinical·IoT·landing/legal) + Next16/React19·헬스대시보드·IoT·보안·i18n 리서치. tsc 0 에러(베이스라인), 보안헤더 양호(HSTS preload·CSP frame-ancestors none).

🔴 시스템 근본원인 (소수 수정으로 다수 증상 해소)

  1. NEXT_PUBLIC_API_URL=http://localhost:3011/api/v1 이 클라이언트 번들에 baked → 브라우저 API 호출이 사용자 로컬호스트로 감(HTTPS mixed-content 차단) → 조용히 실패 → 페이지들이 가짜 데이터로 폴백. api.ts/auth-client.ts의 올바른 /api/v1 폴백을 env가 override. 수정: env → 상대경로 + 재빌드. (AI_API_URL=localhost:8007 동일)
  2. orphan /dashboard/* 목업 11개 (ai-diagnosis·chatbot·health-data·insurance·iot·medication·monitoring·prescription·telemedicine·shop·food) — 참조 0건(어디서도 링크 안됨). 실제 기능 페이지는 루트(/medications·/health-monitoring·/diagnosis…)에 있고 API fetch함. 수정: orphan → 실 라우트 리다이렉트/삭제 (P1 ~20건 일괄 해소).
  3. 미들웨어 역할 미검증: /admin·/doctor·/pharmacist·/franchise·/partner가 access_token 쿠키 존재만 확인(역할 X). 백엔드는 데이터 403하므로 정보노출 수준이나, 역할 게이팅 필요.

🔴 P1 환자안전/보안 (targeted)

P2/P3 (요약)

死버튼 다수(등록/수정/삭제/취소/다운로드/업그레이드/기록/예약/전송) · 조용한 401 삼킴+가짜폴백(포인트 이중적립 위험) · 인증토큰 URL쿼리·응답body 노출 · forgot-password devToken 무조건 렌더 · raw 에러 노출(email enumeration) · 부분 i18n 미완(nav가 /en prefix 유실) · legal 'use client'→메타데이터 없음·전 로케일 한국어 title.

리서치 기반 고도화 방향 (적용 대기)

Next16 cacheComponents(PPR)·use cache · Server Actions+useActionState · Recharts 표준화+차트 WCAG a11y(색상단독금지·aria·data-table 폴백) · 바이탈 SSE 스트리밍 · 서버측 RBAC+MFA(admin)·PHI 로그금지·불변 감사로그 · next-intl 한국어우선(EN 확장대비).

실행 계획 (웨이브)

⚠️ 배포 제약

hospital_web=docker 이미지(hospital-web, standalone) — 소스 baked. 배포=이미지 재빌드 + blue-green(docker-compose.blue-green.yml) 스왑. 라이브 의료 플랫폼이므로 재빌드/스왑 전 승인 필요.