1.9 KiB
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에서 성공했다. 다만 경고를 내지 않도록 라이브러리 전체를 현대화한 것은 아니므로 해당 관리자 엑셀 화면의 운영 확인이 필요하다.