# React/Next.js 취약점 점검 및 정리 (51123) **날짜**: 2025-12-15 **작성자**: happybell80 **관련 파일**: `frontend-customer/package.json`, `frontend-customer/package-lock.json`, `/etc/nginx/sites-enabled/default`, `nginx-infra/server-nginx-default` --- ## 문제 상황 - React/Next.js 취약점 이슈(특히 Next App Router/RSC 계열 DoS) 관련해 서버(51123) 내 실제 사용 여부와 영향 범위를 확인해야 했음. - 로컬 `npm audit`에서 프론트 의존성 취약점이 일부 검출됨. ## 해결 방안 ### 1) Next.js 사용 여부 확인 → 미사용 백업 제거 - nginx는 `/goosefarm`을 정적 파일로 서빙: `/etc/nginx/sites-enabled/default:87`, `:238` (alias `/var/www/html/goosefarm/`) - `:3001` 리스닝/`next start` 프로세스 없음 → Next 런타임 미사용으로 판단 - `goosefarminvesting/frontend-nextjs-backup/` 디렉터리 삭제(미사용 백업, 용량 약 767MB) ### 2) `frontend-customer` 취약점 제거(의존성 업데이트) - 초기: `npm audit --omit=dev`에서 `glob`(HIGH), `mdast-util-to-hast`(MODERATE) 검출 - 조치: `npm audit fix` 수행 후, `esbuild`(vite 하위) 경고가 남아 `vite`/`@vitejs/plugin-react`를 업데이트 - `frontend-customer/package.json:84-91` ### 3) 다른 프론트 프로젝트도 `npm audit` 정리 - `space-times`: `npm audit fix`로 `glob`/`js-yaml` 취약점 정리 후 빌드 성공 - `goosefarminvesting/frontend`: `npm audit fix`로 취약점 정리 후 빌드 성공 ## 검증 - `frontend-customer`: `npm audit` → `found 0 vulnerabilities`, `npm run build` 성공 - `frontend-ir-valuation`: `npm audit --omit=dev` → `found 0 vulnerabilities` - `space-times`: `npm audit` → `found 0 vulnerabilities`, `npm run build` 성공 - `goosefarminvesting/frontend`: `npm audit` → `found 0 vulnerabilities`, `npm run build` 성공 - nginx: `sudo -n nginx -t` 성공, `curl -I http://localhost/goosefarm/` → 200 OK ## 교훈 - `npm audit --omit=dev`만으로 “안전” 판단 금지: 운영과 무관해 보여도(`devDependencies`) CI/빌드 경로에선 실제로 실행될 수 있음. - Next.js 류 취약점은 “코드 존재”보다 “런타임 사용 여부(포트/프로세스/nginx 라우팅)”가 핵심이라, 배포 경로를 먼저 확인해야 함.