>  기사  >  백엔드 개발  >  PHP 코드 감사 - 2. PHP 코드 감사의 PHP 환경 소개

PHP 코드 감사 - 2. PHP 코드 감사의 PHP 환경 소개

不言
不言원래의
2018-04-04 14:39:231743검색

이 글의 내용은 PHP 환경에 대한 소개입니다. 관심 있는 친구들은 살펴보고, 도움이 필요한 학생들에게 참고할 수도 있습니다.


서문


코드는 다음과 같습니다. 다른 환경에서 실행됨 결과는 매우 다를 수 있습니다. 매우 위험한 취약점이 악용될 수 있는 구성 문제 때문일 수도 있고, 취약점을 발견했지만 구성 문제로 인해 악용되지 않았을 수도 있습니다. 오랫동안 성공적인 익스플로잇 코드를 구축하는 것입니다. 그러나 구성 지침은 PHP 버전마다 다를 수 있습니다. 새 버전에서는 일부 지침을 추가하거나 삭제하거나 지침의 기본 설정 또는 고정 설정을 변경할 수 있습니다. 따라서 코드 감사 전에 PHP의 모든 측면에 대해 잘 알고 있어야 합니다. 버전에 포함된 구성 파일의 핵심 지침만이 고품질 취약점을 효율적으로 마이닝할 수 있습니다.

PHP_INI_*상수


상수 의미
PHP __INI__ USER 이 구성 옵션은 사용자의 PHP 스크립트에 등록할 수 있습니다. 또는 Windows 테이블에 설정
PHP__INI__PERDIR 이 구성 옵션은 php.ini ..htaccess 또는 http.conf
에서 설정할 수 있습니다. PHP__ INI__시스템 이 구성 옵션은 php.ini 또는 http.conf
PHP__INI__ALL 이 구성 옵션은 어디에서나 설정할 수 있습니다
php.ini ini 전용 이 설정 옵션은 php.ini
에서만 설정할 수 있습니다.

PHP에는 수백 개의 구성 파일 지침이 있으므로 여기서는 하나씩 소개하지 않겠습니다. 이 측면에 관심이 있는 경우 공식 PHP 구성 문서(http://www.php)에서 구체적인 내용을 확인할 수 있습니다. net/ manual/zh/ini.list.php

PHP의 공통 기본 설정

(1) open_basedir 설정

open_basedir은 응용 프로그램이 액세스할 수 있는 디렉터리를 제한할 수 있습니다. 물론 일부는 설정되어 있는지 확인하세요. 예를 들어, Apache의 php_admin_value, nginx+fcgi는 conf를 통해 제어됩니다.

(2)allow_url_fopen 설정

allow_url_fopen=ON이면 PHP는 원격 파일을 읽어서 작업할 수 있으며, 이는 공격자가 쉽게 악용할 수 있습니다.

(3)allow_url_include 설정

allow_url_include=ON이면 PHP에 원격 파일이 포함될 수 있으며 이로 인해 심각한 취약점이 발생할 수 있습니다.

(4) safe_mode_exec_dir 설정

이 옵션은 php에서 호출할 수 있는 외부 명령의 디렉터리를 제어할 수 있습니다. php 프로그램에서 호출되는 외부 명령이 있는 경우 외부 명령의 디렉터리를 알면 위험을 제어할 수 있습니다. 프로그램의.

(5) Magic_quote_gpc 설정

이 옵션은 매개변수에 제출된 특수 문자를 피할 수 있습니다. Magic_quote_gpc=ON으로 설정하는 것이 좋습니다.

(6) Register_globals 설정

이 옵션을 켜면 PHP가 외부에서 제출됩니다. 변수가 전역 변수로 등록되어 결과가 매우 심각합니다.

(7) safe_mode 설정

safe_mode는 PHP의 중요한 보안 기능이므로 켜는 것이 좋습니다.

(8) session_use_trans_sid 설정

session_use_trans_sid가 활성화되면 PHP는 세션 ID를 다음을 통해 전달합니다. 공격자로 연결되는 URL 현재 세션을 쉽게 가로채거나 공격자가 이미 제어하는 ​​기존 세션을 사용하도록 사용자를 속입니다.

(9) display_errors 설정

이 옵션을 활성화하면 PHP는 모든 오류 또는 경고 정보를 출력하며 공격자는 이 정보를 이용하여 웹 루트 경로와 같은 민감한 정보를 얻을 수 있습니다.

(10) 노출_php 설정

노출_php 옵션이 활성화된 경우 이를 해석하는 PHP에서 생성된 모든 응답에는 호스트 시스템에 설치된 PHP 버전이 포함됩니다. 원격 서버에서 실행되는 PHP 버전을 알면 공격자가 시스템에 대해 알려진 추출 방법을 열거할 수 있어 공격 성공 가능성이 크게 높아집니다.

(11) Magic_quotes_sybase (마법의 따옴표 자동 필터링)

magic_quotes_sybase 명령은 특수 문자를 자동으로 필터링하는 데 사용됩니다. on으로 설정하면 Magic_quotes_gpc=on의 구성을 덮어쓰게 됩니다. 즉, gpc는 time =on으로 구성된 경우에도 효과가 없습니다. 이 명령과 gpc의 공통점은 처리되는 개체가 동일하다는 것입니다. 즉, 둘 다 POSTGETCookie를 처리한다는 것입니다.

(12) 비활성화_함수(비활성화 기능)

정식 프로덕션 환경에서는 PHP를 보다 안전하게 실행하기 위해 비활성화_함수 지시문을 사용하여 일부 민감한 기능의 사용을 금지할 수도 있습니다. 일부 위험한 기능을 금지하기 위해 이 지시문을 사용하려면, 금지 목록에 dl() 함수를 추가해야 합니다. 왜냐하면 공격자가 dl() 함수를 사용하여 사용자 정의 PHP 확장을 로드하여 비활성화_함수 지시문의 제한 사항을 돌파할 수 있기 때문입니다.

관련 추천:

php 코드 감사 (1) -----디버깅 기능

위 내용은 PHP 코드 감사 - 2. PHP 코드 감사의 PHP 환경 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.