'suhosin'에 해당되는 글 1건

  1. 2013.02.22 [PHP] Warning: exec() has been disabled for security reasons - Suhosin
Programming/PHP2013. 2. 22. 01:06

수정 작업을 해야되서 페이지 따로 구성해서 작업하는데..

기존 PHP소스에서 잘되던 exec명령어가 안된다......

-------------------------------------------

Warning: exec() has been disabled for security reasons....

-------------------------------------------


위의 에러의 경우 아래의 설정으로 기본적으로 해결된다....

-------------------------------------------

http://www.php.net/manual/kr/ini.sect.safe-mode.php

safe_mode boolean

PHP의 안전 모드 활성화 여부. PHP가 --enable-safe-mode로 컴파일 되면 기본값 On, 아니면 Off.

safe_mode_exec_dir string

PHP가 안전 모드를 사용중이라면, system()과 그 외의 시스템 프로그램을 실행하는 함수는 이 디렉토리에 있지 않으면 프로그램 시작이 거부된다. 윈도우를 포함한 모든 환경에서 디렉토리 구분은 /를 이용해야 합니다.


http://www.php.net/manual/kr/ini.core.php#ini.disable-functions

disable_function 설정

-------------------------------------------


하지만 php.ini아무리 봐도 답이 없음....

확인 결과 해당서버에 뭔가 깔려있다.......

-------------------------------------------

PHP 5.1.6 (cli) 

Copyright (c) 1997-2006 The PHP Group

Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies

    with Zend Extension Manager v1.2.2, Copyright (c) 2003-2007, by Zend Technologies

    with Suhosin v0.9.29, Copyright (c) 2007, by SektionEins GmbH

    with Zend Optimizer v3.3.3, Copyright (c) 1998-2007, by Zend Technologies

-------------------------------------------

 


수호신(Suhosin) 설치되어있듬(수호신에 대해서 자세한 내용은 다음에 기회있을때 다시...)

우선 아래 실행해보면


if (extension_loaded('suhosin')) {
        $suhosin = @ini_get("suhosin.executor.func.blacklist");
        print_r($suhosin);
}
-------------------------------------------

[root@test]$ php test.php 

system,passthru,shell_exec,exec,show_source,popen,allow_url_fopen,proc_open

-------------------------------------------


시스템 명령어 막아 놓음......

그리고 vhost에서.....

특정 디렉토리만 해당 수호신에 해당 옵션을 별도록 설정 

-------------------------------------------

<Directory ?????/www/???>

php_admin_value suhosin.executor.func.blacklist system,passthru,shell_exec,show_source,popen,allow_url_fopen,popen,proc_open

</Directory>

-------------------------------------------


vhost php_admin_value에 exec가 빠져있기 때문에 허용 되었던 것임....

안되는 원인 찾는다고 계속 삽질했네 휴.....

ㅠ_________ㅠ;;



Posted by 시니^^