설정인자 |
권장값 |
요약설명 |
register_globals |
Off |
이 값을 On으로 설정하면 PHP가 입력으로 받아들이는 값(환경변수, GET, POST, 쿠키, Server 변수)을 무조건 Global변수로 다루게 된다. 전역변수는 프로그램의 동작 중 어디서나 변수값이 변경될 수 있기 때문에, 웹 프로그램의 파라미터 변조, 오동작으로 인한 보안문제가 발생할 수 있다. PHP 4.2.0이후로는 보안상의 문제를 고려해 디폴트로 Off로 설정되어 나오지만, 프로그램이 On상태에서만 동작하도록 했을 때는 반드시 수정하여야 한다. |
safe_mode |
On |
이 값을 On으로 설정하면 시스템 중요파일(/etc/passwd)접근을 제한할 수 있으나, 이 때문에 웹 프로그램이 정상 작동하지 않을 수 있다. |
safe_mode_gid |
Off |
위 설정관 관련되어 시스템 중요파일(/etc/passwd)접근을 제한 할 수 있으나, 이루 인해 웹 프로그램이 정상 작동하지 않을 수 있다. |
expose_php |
Off |
웹 브라우저의 요청에 대해 PHP정보 노출을 방지한다. |
file_uploads |
Off |
해당사이트의 PHP프로그램의 파일업로드를 사용하지 않는 경우 해당 값을 Off로 설정하여, 파일 업로드 공격을 차단할 수 있다. |
allow_url_fopen |
Off |
해당 옵션을 On으로 설정하면 파일 액세스 시 외부 사이트의 파일을 호출할 수 있다. 특히 include(), require()계열의 함수 사용 시 심각한 보안상의 문제를 유발하게 되므로 반드시 Off로 사용한다. include _GET[$url]이런식으로 되어있을 때xxx.php?url=http://악성코드 요런식으로 될수도있다. |
magic_quotes_gpc |
On |
해당옵션을 On으로 설정하면 PHP가 입력으로 받아들이는 값(환경변수, GET, POST, 쿠키, server변수)에 단일 인용부호(‘), 이중인용부호("), 백슬러시(\), 널문자가 포함된경우 자동으로 해당문자앞에 백슬래시를 추가하여 특수문자를 처리한다. 이것으로 웹 프로그램의 인자를 변경하는 SQL 구문삽입등을 차단할 수 있다. |
magic_quotes_sysbase |
Off |
sysbase사용자의 정상적인 DB접속을 위해 만들어진 기능이며, 해당기능은 magic_quotes_gpc설정을 무의미하게 만들수 있으므로 sysbase사용자가 아니라면 off로 설정한다. |
open_basedir |
Directory |
해당옵션에 특정디렉토리를 설정하면, 지정된 디렉토리내에서만 파일에 접근할 수 있다. |
safe_mode_exec_dir |
Directory |
해당옵션을 사용하면 system(), exec(), passthru()등 외부 명령어 실행시 지정된 디렉토리에 존재하지 않는 프로그램은 실행할 수 없게 된다. 임의로 업로드한 공격도구나 wget, xterm등 공격에 사용될 수 있는 명령어를 제한할 수 있다. |
display_errors |
Off |
PHP실행 중 에러정보 노출을 방지하는 역할을 제공하므로 필수적이므로 Off설정하도록 한다. |
log_errors |
On |
해당옵션을 On으로 설정하는 경우 PHP실행 중 발생하는 경고나 에러정보를 error_log에서 지정한 파일에 기록하게 되므로 의도적인 에러(SQL Injection등)발생시도를 확인해 볼 수 있다. |
error_log |
파일명 |
PHP실행중 발생하는 경고나 에러정보를 작성할 파일을 지정하는 옵션이다. |
[root@web2:/usr/local/http/conf]#vi php.ini
……………………………………………………………………………………………………………
338 safe_mode = On
531 display_errors = Off
695 register_globals = Off
344 safe_mode_gid = Off
431 expose_php = Off
874 file_uploads = Off
891 allow_url_fopen = Off
748 magic_quotes_gpc = On
379 ;open_basedir =
356 safe_mode_exec_dir =
552 log_errors = On
636 ;error_log = php_errors.log
à 637 error_log = /weblogs/php_error.log (위에서 만들었던 아파치 로그 디렉토리 위치)
……………………………………………………………………………………………………………
이렇게 되어있는지 확인하고 안되어있다면 바꾸어준다.
1. safe_mode On 일 경우 파일을 이 디렉토리 및 그 하위로부터 include 하는 경우는 UID/GID 의 체크가 스킵된다. 이러한 디렉토리는 include_path 에 포함되도록 하거나 또는 include 시에 절대 경로를 사용해야 한다.
|