Files
egbim_homepage/PHP_SECURITY_PATCH_TASKS.md

1.9 KiB

PHP 보안 패치 작업 목록

목표

실행 중인 php:8.1-apache 기반 PHP 8.1.34를 CVE-2026-109618 및 CVE-2026-109619 수정 버전으로 교체하고, app 컨테이너에 반영한다.

작업

  • docker/php/Dockerfile 베이스 이미지를 최신 안정 수정 Apache 이미지 php:8.5.12-apache로 변경한다.
  • PHP 오류를 방문자 응답에 노출하지 않고 로그에 기록해 PHP 8.5 deprecation 경고가 페이지/엑셀 응답에 섞이지 않게 한다.
  • PHP 8.5 호환성 점검: sw_upload의 mysqli::ping() 사용을 제거하고 PHPExcel 기반 엑셀 화면의 경고/응답 영향을 확인한다.
  • Cloudflare Worker 점검 라우트를 활성화해 방문자에게 정적 점검 안내를 제공한다.
  • 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에서 성공했다. 다만 경고를 내지 않도록 라이브러리 전체를 현대화한 것은 아니므로 해당 관리자 엑셀 화면의 운영 확인이 필요하다.