[ Server ][ Linux ] centos7 how to enable exec() 2 > linux

본문 바로가기

사이트 내 전체검색

linux

[ Server ][ Linux ] centos7 how to enable exec() 2

작성일 19-04-16 10:57

페이지 정보

작성자 웹지기 조회 7,447회 댓글 0건

본문

 도메인 당 PHP 기능을 사용하지 못하게하는 방법!


서버 보안을 처리 할 때 결국 일부 PHP 기능을 비활성화하려고 할 것입니다. 

공유 호스팅의 유일한 문제 는 도메인에 대한 exec 를 비활성화 할 수없고 일부 절름발이 스크립트로 인해 도메인을 필요로하는 다른 사용자를 위해 해당 기능을 활성화 할 수 없다는 것입니다. 

결국 한 사이트로 인해 전체 서버에서 exec 를 활성화해야 할 부분에 도달하게 됩니다. 

이것에 대한 해결책이 있으며 suhosin이라고합니다.

Suhosin은 "suhosin.executor.func.blacklist"라는 구성 변수를 가지고 있습니다.이 변수를 사용하여 일부 PHP 기능을 비활성화 할 수 있습니다. 

php.ini에서 이 변수와 disable_functions의 차이점은 모든 사이트에 대해 설정할 수 있다는 것입니다 . 

그러면 전체 서버에서 exec 를 비활성화 할 수 있도록 도메인 만 수정할 수 있습니다 (덮어 쓸 수 있음). 

단일 도메인에 대해이 기능을 사용 가능하게하십시오. 

suhosin을 설치하는 방법을 여기에 쓰지 않을 것이다. 

또한 PHP 확장을 필요로하므로 PHP를 다시 컴파일하거나 다시 컴파일 할 필요가 없습니다.


중요 : suhosin 확장 0.9.20이 더 이상 작동하지 않는다는 것을 알아 냈습니다. 우리가 0.9.18을 가지고있는 한 괜찮습니다. 

아마 확장 기능의 다음 버전이 다시 작동하도록 수정 될 것이므로 문제가 해결 될 때까지 버전 0.9.18을 사용하는 것을 잊지 마십시오.


php 함수 차단기로 suhosin을 사용하려면 php ini에서 disable_functions를 주석 처리하고 (예, 모든 함수를 활성화) 

php.ini suhosin.executor.func.blacklist에 다음과 같이 설정해야합니다. 

 

suhosin.executor.func.blacklist = exec, passthru, shell_exec, system, pcntl_exec, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg

원하는만큼 많은 기능을 추가 할 수 있습니다. 

그 후, suhosin.executor.func.blacklist에 추가 된 모든 함수는 PHP 스크립트에서 더 이상 작동하지 않습니다. 도메인에 대한 함수를 활성화해야하는 경우 

exec 라고 가정 해 봅시다. apache 구성 파일을 편집하고 exec 함수없이 suhosin.executor.func.blacklist를 추가해야합니다. 


<VirtualHost 127.0.0.1> 

ServerAlias www.test.com

ServerAdmin webmaster@test.com

DocumentRoot /home/test/public_html

php_admin_value suhosin.executor.func.blacklist "passthru, show_source, shell_exec, system, pcntl_exec, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg"

 

</ VirtualHost> 


이제 exec는 서버에서는 사용할 수 없지만 테스트 도메인에서는 활성화되어 있습니다. 


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 103건 1 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기