본문으로 건너뛰기 프로젝트 상담 신청

1분 보안 점검 · 005 보안 PHP 서버 점검

PHP 버전을 3년째 안 올린 사이트에서 생기는 일

읽는 데 약 5분 더블루캔버스

우리 홈페이지의 PHP 버전이 아직 지원되는 버전인지 어떻게 확인하나요?

브라우저에서 F12 를 눌러 네트워크 탭의 응답 헤더에서 X-Powered-By 줄을 보시면 됩니다. 641곳에 직접 접속해 확인한 결과 버전을 드러낸 26곳 가운데 22곳이 보안 지원이 끝난 버전이었고, 그중 21곳은 끝난 지 3년이 넘었습니다.

핵심 요약

  • 주소가 남아 있는 641곳에 직접 접속해 응답 헤더를 읽었습니다. PHP 버전을 그대로 드러낸 곳은 26곳이었고, 그 가운데 22곳이 보안 지원이 끝난 버전이었습니다.
  • 가장 많이 나온 버전은 7.4였습니다. 2022년 11월 28일에 지원이 끝났으니 3년 9개월이 지났습니다. 22곳 가운데 21곳은 끝난 지 3년이 넘었습니다.
  • PHP로 도는 것이 확인된 곳은 157곳이었는데 버전까지 읽힌 곳은 26곳뿐이고, 나머지 131곳은 버전을 내보이지 않는 설정이었습니다. 감추는 설정은 취약점을 없애 주지 않습니다.

화면은 멀쩡한데 버전만 멈춰 있습니다

홈페이지가 어제와 똑같이 열리기 때문에, 서버 안에서 무엇이 멈춰 있는지는 밖에서 보이지 않습니다. PHP 버전이 그렇습니다. 버전이 낡아도 화면은 느려지지 않고 오류도 나지 않으므로, 담당자가 바뀌는 동안 확인 대상에서 조용히 빠집니다.

그래서 남의 조사를 인용하지 않고 직접 세어 보았습니다. 더블루캔버스 리뷰 아카이브에 대상 사이트 주소가 남아 있는 641곳에 차례로 접속해, 서버가 스스로 붙여 보낸 응답 헤더의 X-Powered-ByServer 만 읽었습니다. 취약점을 찔러 보는 시도는 하지 않았고, 첫 화면 한 번을 받은 것이 전부입니다. 615곳이 응답했습니다.

버전을 드러낸 26곳 중 22곳이 지원 종료였습니다

응답 헤더에 PHP 버전이 그대로 적혀 있던 곳은 26곳이었습니다. 그 가운데 보안 지원이 남아 있는 버전은 네 곳뿐이었고, 나머지 22곳은 이미 지원이 끝난 버전이었습니다.

버전보안 지원 종료일경과
7.46곳2022-11-283년 9개월
7.35곳2021-12-064년 8개월
5.44곳2015-09-0310년 11개월
5.22곳2011-01-0615년 7개월
8.3 · 8.44곳2027-12-31 · 2028-12-31지원 기간 안

표에 적지 않은 5.3 한 곳, 7.1 한 곳, 7.2 두 곳, 8.1 한 곳까지 더하면 26곳이 됩니다. 지원이 끝난 22곳 가운데 21곳은 종료일로부터 3년이 넘게 지나 있었고, 가장 오래된 곳은 2011년에 끝난 5.2.17 이었습니다.

지원 종료는 고쳐 주지 않는다는 뜻입니다

보안 지원이 끝났다는 말은 성능이 조금 떨어진다는 뜻이 아닙니다. 새 취약점이 발견되어도 그 버전을 위한 수정본이 더 이상 나오지 않는다는 뜻입니다. PHP 공식 지원 정책에 그렇게 적혀 있습니다.

공격하는 쪽에서 보면 버전 번호는 어떤 취약점이 남아 있는지 알려 주는 목록과 같습니다. 화면을 아무리 새로 만들어도 그 아래에서 도는 버전이 그대로면 조건은 달라지지 않습니다.

버전을 감춘 곳이 다섯 배 넘게 많았습니다

이번 측정에서 한 가지를 더 확인했습니다. 쿠키와 최종 주소, 응답 헤더로 보아 PHP로 도는 것이 확인된 곳은 157곳이었는데, 버전까지 읽힌 곳은 26곳뿐이었습니다. 나머지 131곳은 버전 번호를 내보내지 않는 설정(expose_php = Off)이었습니다.

이 설정은 자동으로 훑고 다니는 목록에서 빠지게 해 주므로 켜 두는 편이 낫습니다. 다만 감추는 것과 올리는 것은 다른 일입니다. 번호를 가려도 서버에 남아 있는 취약점은 그대로 남습니다. 그래서 이번 편의 숫자는 "몇 퍼센트가 위험하다"가 아니라 "버전을 드러낸 곳이 몇 곳이고 그중 몇 곳이 지원 종료였다"까지만 말합니다.

30초면 확인할 수 있습니다

  1. 브라우저에서 F12 를 눌러 개발자 도구를 엽니다.
  2. 네트워크 탭을 열고 새로 고침한 다음, 맨 위의 문서 요청을 고릅니다.
  3. 오른쪽 응답 헤더에서 x-powered-by: PHP/7.4.33 처럼 적힌 줄을 찾습니다.
  4. 그 줄이 없다면 서버에 접속해 php -v 한 줄로 확인합니다.

버전을 확인하셨다면 PHP 공식 지원 버전 표와 대조해 보시면 됩니다. 종료일이 이미 지난 버전이라면 올리는 일정을 잡으셔야 합니다.

올릴 때는 순서를 지켜야 합니다

  1. 지금 버전을 적어 둡니다. 응답 헤더나 php -v 로 확인한 값을 그대로 기록합니다.
  2. 호환성을 먼저 확인합니다. CMS와 플러그인, 라이브러리가 요구하는 버전을 맞춰 봅니다.
  3. 복제본에서 먼저 올려 봅니다. 같은 구성의 사본을 만들어 올린 뒤 오류를 잡습니다.
  4. 그다음에 실서버를 올리고, 버전을 감추는 설정은 마지막에 켭니다.

세 번째 단계를 건너뛰고 실서버부터 올리면 되돌릴 자리가 남지 않습니다. 버전이 크게 뛸수록 오래된 함수가 사라져 화면이 멈추는 경우가 있으므로, 복제본에서 한 번 지나가는 시간이 결국 가장 짧습니다.

PHP 버전만 문제가 되는 경우는 드뭅니다. 홈페이지가 해킹됐는지 10초 만에 확인하는 방법인증서 점검을 함께 확인하시면 서버 상태를 대략 파악하실 수 있습니다.

측정은 2026년 8월 30일에 했습니다. 특정 회사를 가리키지 않도록 화면과 본문의 도메인은 모두 example.com 으로 바꾸어 적었고, 헤더 값만 측정에서 나온 그대로 썼습니다.

영상 자막 전문 (6개 장면)

26곳 중 22곳이 지원 종료

주소가 남아 있는 641곳에 직접 접속했더니, PHP 버전을 드러낸 26곳 중 22곳이 지원 종료였습니다.

화면은 멀쩡한데 버전이 멈춰 있습니다

641곳에 직접 접속해 응답 헤더를 읽었습니다. PHP 버전을 드러낸 곳은 26곳이었고, 그중 22곳이 지원이 끝난 버전입니다.

고쳐 주지 않는다는 뜻입니다

지원이 끝나면 새 취약점이 나와도 고쳐 주지 않습니다. 가장 많았던 7.4는 3년 9개월 전에 끝났고, 21곳은 끝난 지 3년이 넘었습니다.

감춘 곳이 다섯 배 넘게 많습니다

PHP로 도는 곳은 157곳이었고, 그중 131곳은 버전을 내보이지 않았습니다. 감추어도 취약점은 그대로 남습니다.

응답 헤더 한 줄이면 됩니다

확인은 30초면 됩니다. 개발자 도구에서 응답 헤더를 열어 X-Powered-By 줄을 보시면 버전이 적혀 있습니다.

감추는 것은 마지막 순서입니다

먼저 지금 버전과 호환성을 적고, 복제본에서 올려 본 다음에 실서버를 올립니다. 무료 진단은 bluecvs.com/soc.php 에서 받으실 수 있습니다.

자주 묻는 질문

버전을 감추면 안전해지나요?

안전해지지는 않습니다. <code>expose_php = Off</code> 설정은 응답 헤더에서 버전 번호를 빼 주므로, 버전을 보고 대상을 고르는 자동 스캐너의 목록에서는 빠집니다. 다만 서버에 남아 있는 취약점은 그대로 남아 있어서, 직접 찔러 보는 공격에는 똑같이 노출됩니다. 감추는 설정은 버전을 올린 다음에 켜는 마지막 단계로 생각하시면 됩니다.

지원이 끝난 버전을 쓰면 당장 무슨 일이 생기나요?

당장 화면이 멈추지는 않습니다. 문제는 그다음에 생깁니다. 새로운 취약점이 공개되면 지원 중인 버전에는 보름 안팎으로 수정본이 나오지만, 지원이 끝난 버전에는 나오지 않습니다. 그래서 시간이 지날수록 알려진 채로 고쳐지지 않은 구멍이 쌓입니다. 이번 측정에서 22곳 가운데 21곳이 끝난 지 3년을 넘겼습니다.

버전을 올리면 홈페이지가 깨지지 않을까요?

깨질 수 있습니다. 그래서 순서가 있습니다. CMS와 플러그인이 요구하는 버전을 먼저 확인하고, 같은 구성의 복제본을 만들어 거기에서 먼저 올린 뒤 오류를 잡습니다. 실서버는 마지막입니다. 복제본에서 확인하지 않고 바로 올리면 되돌릴 자리가 없어서 장애가 그대로 길어집니다.

호스팅 업체가 알아서 올려 주지 않나요?

공용 호스팅에서는 업체가 PHP 버전을 여러 개 제공하고 선택은 사용자에게 맡기는 경우가 많습니다. 즉 새 버전이 준비되어 있어도 관리 화면에서 직접 바꾸지 않으면 예전 버전이 계속 돌아갑니다. 서버를 따로 쓰고 계신다면 올리는 작업 자체가 관리자의 몫입니다. 어느 쪽이든 확인은 직접 하셔야 합니다.

버전까지 함께 점검해 드립니다

더블루캔버스는 SSH 설정과 방화벽, 계정 권한, 웹서버와 PHP 버전, SSL 설정, 로그까지 점검하고 위험도와 조치 순서를 정리한 리포트를 드립니다.

무료 진단 신청하기

다른 숏폼 인사이트

숏폼 인사이트 전체 보기