웹사이트 검색

HTTP 헤더에서 PHP 버전 번호를 숨기는 방법


PHP 구성에서는 기본적으로 서버 HTTP 응답 헤더 'X-Powered-By'가 서버에 설치된 PHP 버전을 표시하도록 허용합니다.

서버 보안상의 이유로(걱정할 만한 큰 위협은 아니지만), PHP 실행 여부를 알고 싶어 서버를 표적으로 삼을 수 있는 공격자로부터 이 정보를 비활성화하거나 숨기는 것이 좋습니다.

서버에 설치된 특정 버전의 PHP에 보안 허점이 있고 공격자가 이를 알게 된다면 취약점을 악용하고 스크립트를 통해 서버에 액세스하는 것이 훨씬 쉬워질 것입니다.

이전 기사에서는 Apache 버전 번호를 숨기는 방법을 설명했으며, 여기서는 Apache 설치 버전을 끄는 방법을 살펴보았습니다. 그러나 Apache 웹 서버에서 PHP를 실행 중인 경우에는 설치된 PHP 버전도 숨겨야 하며, 이것이 이 기사에서 보여줄 내용입니다.

따라서 이번 포스팅에서는 서버 HTTP 응답 헤더에 PHP 버전 번호 표시를 숨기거나 끄는 방법에 대해 설명하겠습니다.

이 설정은 로드된 PHP 구성 파일에서 구성할 수 있습니다. 서버에서 이 구성 파일의 위치를 모르는 경우 아래 명령을 실행하여 찾으십시오.

php -i | grep "Loaded Configuration File"
---------------- On CentOS/RHEL/Fedora ---------------- 
Loaded Configuration File => /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
Loaded Configuration File => /etc/php/7.0/cli/php.ini

PHP 구성 파일을 변경하기 전에 먼저 다음과 같이 PHP 구성 파일을 백업하는 것이 좋습니다.

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo cp /etc/php.ini /etc/php.ini.orig

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo cp /etc/php/7.0/cli/php.ini  /etc/php/7.0/cli/php.ini.orig  

그런 다음 다음과 같이 슈퍼 유저 권한이 있는 즐겨 사용하는 편집기를 사용하여 파일을 엽니다.

---------------- On CentOS/RHEL/Fedora ---------------- 
sudo vi /etc/php.ini

---------------- On Debian/Ubuntu/Linux Mint ---------------- 
sudo vi /etc/php/7.0/cli/php.ini

expose_php 키워드를 찾아 해당 값을 끄기로 설정합니다.

expose_php = off

파일을 저장하고 종료합니다. 그런 다음 다음과 같이 웹 서버를 다시 시작하십시오.

---------------- On SystemD ---------------- 
sudo systemctl restart httpd
sudo systemctl restart apache2 

---------------- On SysVInit ---------------- 
sudo service httpd restart
sudo service apache2 restart

마지막으로, 아래 명령을 사용하여 서버 HTTP 응답 헤더에 여전히 PHP 버전 번호가 표시되는지 확인하세요.

lynx -head -mime_header http://localhost 
OR
lynx -head -mime_header http://server-address

플래그는 다음과 같습니다.

  1. -head – MIME 헤더에 대한 HEAD 요청을 보냅니다.
  2. -mime_header – 가져온 문서의 MIME 헤더를 소스와 함께 인쇄합니다.

참고: 시스템에 명령줄 웹 브라우저인 lynx가 설치되어 있는지 확인하세요.

그게 다야! 이 기사에서는 가능한 공격으로부터 웹 서버를 보호하기 위해 서버 HTTP 응답 헤더에서 PHP 버전 번호를 숨기는 방법을 설명했습니다. 이 게시물에 의견을 추가하거나 아래 댓글 양식을 통해 관련 질문을 할 수 있습니다.