기본 php를 설치를 하면 PHP상에서 시스템 명령어를 사용할수 있다
하지만 이 부분의 취약점을 이용하는 부분이 있어
시스템 명령어를 사용하지 못하게 하는 경우가 있다
PHP.INI 에서 파일 설정
safe_mode = Off 시스템명령어 사용 가능
safe_mode = Off 시스템명령어 사용 불가능
기타내용 참고
safd_mode_gid Off 위 설정과 연괸되어 시스템 중요파일(/etc/passwd)접근을
제한할 수 있으나, 이로 인해 웹 프로그램이 정상 작동하지
않을 수 있다.
expose_php Off 웹 브라우저의 요청에 대해 PHP 정보 노출을 방지한다.
file_uploads Off 해당 사이트의 PHP 프로그램의 파일 업로드를 사용하지 않는
경우 해당 값을 Off로 설정하여, 파일 업로드 공격을 차단할 수 있다.
allow_url_fopen Off 해당 옵션을 On으로 설정하면 파일 엑세스 시 외부 사이트의
파일을 호출할 수 있다. 특히 include(), require() 계열의
함수 사용 시 심각한 보안상의 문제를 유발하게 되므로
반드시 Off로 사용한다.
magic_quotes_gpc On 해당 옵션을 On으로 설정하면 PHP가 입력으로 받아들이는 값
(환경 변수, GET, POST, 쿠키, Server 변수)에 단일 인용 부호(‘),
이중 인용 부호("), 백슬래시(\), 널문자가 포함된 경우
자동으로 해당 문자 앞에 백슬래시를 추가하여 특수 문자를 처리한다.
magic_quotes_sybase Off Sybase 사용자의 정상적인 DB접속을 위해 만들어진 기능이며
해당 기능은 magic_quetes_gpc 설정을 무의미하게 만들 수
있으므로 Sybase 사용자가 아니라면 Off로 설정한다.
open_basedir 디렉터리 해당 옵션에 특정 디렉터리를 설정하면, 지정된 디렉터리
내에서만 파일에 접근할 수 있다.
safe_mode_exec_dir 디렉터리 해당 옵션을 사용하면 system(), exec(), passthru() 등
외부 명령어 실행 시 지정된 디렉터리에 존재하지 않는
프로그램은 실행할 수 없게 된다. 임의로 업로드한 공격 도구나
wget, xterm 등 공격에 사용될 수 있는 명령어를 제한할 수 있다.
display_errors Off PHP 실행 중 에러 정보 노출을 방지하는 역할을 제공하므로
필수적이므로 Off 설정하도록 한다.
log_errors On 해당 옵션을 On으로 설정하는 경우 PHP 실행 중 발생하는
경고나 에러 정보를 error_log에서 지정한 파일에 기록하게 되므로
의도적인 에러(SQL Injection 등) 발생 시도를 확인해 볼 수 있다.
error_log 파일명 PHP 실행 중 발생하는 경고나 에러 정보를 작성할 파일을
지정하는 옵션이다.