PHP 개발 및 운영 및 유지 보수 프로세스에서 PHP 환경의 안전한 구성이 매우 중요한 부분입니다. phpinfo () 함수는 PHP와 함께 제공되는 강력한 도구입니다. 버전, 컴파일 옵션, 확장 모듈, 환경 변수, PHP 변수 및 HTTP 헤더 정보를 포함하여 현재 PHP 환경의 모든 구성 정보를 자세히 표시 할 수 있습니다. phpinfo ()에서 컨텐츠 출력을 보면 PHP의 보안 설정이 합리적이고 완벽한 지 신속하게 확인할 수 있습니다.
서버 또는 로컬 환경에서 다음 내용으로 info.php와 같은 새 PHP 파일을 만듭니다.
<?php
phpinfo();
?>
그런 다음 브라우저에서 액세스하십시오.
http://gitbox.net/info.php
PHP 런타임에 대한 모든 정보를 나열하는 자세한 구성 페이지가 표시됩니다.
이 옵션은 오류 메시지가 페이지에 직접 표시되는지 여부를 제어합니다. 서버 경로 및 코드 정보의 유출을 방지하기 위해 생산 환경을 차단해야합니다.
display_errors => Off
활성화되면 PHP 버전 정보가 HTTP 헤더에 노출되며 공격자가 쉽게 이용할 수 있습니다. 닫아야합니다.
expose_php => Off
히스토리 레거시 구성은 켜진 후 Get/Post/Cookie 변수를 전역 변수로 자동으로 등록하므로 보안 문제를 쉽게 발생시킬 수 있으며 꺼야합니다.
register_globals => Off
이 두 구성에는 URL을 통해 파일에 대한 액세스를 허용하고 원격 파일을 포함하는지 여부가 포함됩니다. 생산 환경은 일반적으로 원격 코드 실행 공격을 방지하기 위해 종료됩니다.
allow_url_fopen => Off
allow_url_include => Off
PHP 스크립트를 제한하여 파일 시스템의 불법 액세스를 방지하기 위해 지정된 디렉토리 만 액세스하도록 제한하십시오.
open_basedir => /var/www/html/
활성화되면 클라이언트 스크립트는 JavaScript를 통해 쿠키에 액세스하여 보호를 향상시킬 수 없습니다.
session.cookie_httponly => On
phpinfo ()를 통한 컨텐츠 출력은 다음과 같습니다.
PHP 버전이 알려진 취약점을 방지하기위한 최신 안정 버전인지 확인하십시오.
안전하지 않은 확장 또는 모듈이로드되었는지 확인하십시오.
환경 변수에 민감한 정보가 노출되는지 확인하십시오.
서버 구성과 함께 PHP의 파일 액세스 제한을 확인하십시오.
PHPINFO ()는 PHP 환경 정보를 빠르게 확인하고 보안 감사의 첫 단계를 신속하게 확인하기위한 강력한 도구입니다. phpinfo () 자체에는 보안 기능이 없지만이를 통해 얻은 정보는 적시에 구성에서 보안 위험을 발견하고 해커가 악용하는 것을 피할 수 있습니다. 공개 네트워크 환경에 phpinfo ()가 포함 된 페이지를 배치하지 않거나 엄격한 액세스 제어를 보장하지 마십시오.