Files
egbim_homepage/PHP_SECURITY_PATCH_TASKS.md

28 lines
1.9 KiB
Markdown

# PHP 보안 패치 작업 목록
## 목표
실행 중인 `php:8.1-apache` 기반 PHP 8.1.34를 CVE-2026-109618 및 CVE-2026-109619 수정 버전으로 교체하고, `app` 컨테이너에 반영한다.
## 작업
- [x] `docker/php/Dockerfile` 베이스 이미지를 최신 안정 수정 Apache 이미지 `php:8.5.12-apache`로 변경한다.
- [x] PHP 오류를 방문자 응답에 노출하지 않고 로그에 기록해 PHP 8.5 deprecation 경고가 페이지/엑셀 응답에 섞이지 않게 한다.
- [x] PHP 8.5 호환성 점검: `sw_upload`의 `mysqli::ping()` 사용을 제거하고 PHPExcel 기반 엑셀 화면의 경고/응답 영향을 확인한다.
- [ ] Cloudflare Worker 점검 라우트를 활성화해 방문자에게 정적 점검 안내를 제공한다.
- [x] legacy builder로 PHP 8.5.12 `app` 이미지를 빌드하고 Compose 기본 태그 `egbim-app:latest`에도 연결한다. (BuildKit 플러그인이 없어 legacy builder 사용)
- [ ] `docker compose up -d --no-deps --force-recreate app`으로 `app`만 재생성한다.
- [ ] `docker compose exec app php -v`로 PHP 8.5.12 이상이 실제 컨테이너에서 실행 중인지 확인한다.
- [ ] 서비스가 정상 응답하는지 확인한 뒤 Cloudflare 점검 라우트를 비활성화한다.
## 범위 제외
- Q&A 기능 및 관련 마이그레이션/API 작업
- 애플리케이션 기능 변경
- MariaDB 이미지, 데이터베이스 스키마 및 데이터 변경
## 호환성 점검 결과
- `egbim/adm/shop_admin/` 및 `egbim/adm/sms_admin/`의 PHPExcel 엑셀 입출력 경로는 PHP 8.5에서 deprecated 경고를 발생시킨다. 기존 `display_errors=On` 설정에서는 엑셀 다운로드 응답이 오염될 수 있어 화면 출력은 끄고 로그 기록을 켠다.
- PHPExcel 임시 XLS 생성은 PHP 8.5.12에서 성공했다. 다만 경고를 내지 않도록 라이브러리 전체를 현대화한 것은 아니므로 해당 관리자 엑셀 화면의 운영 확인이 필요하다.