시스템 프로그램 실행
시스템 프로그램 실행
시스템 자체에서 명령어를 실행하고, 그 명령어를 안전하게 보호하는 수단을 제공하는 함수들이에요. 쉘 명령을 호출하는 일이 반복되다 보면 보안과 권한 문제를 함께 신경 써야 하는데, 이 함수들이 그 두 가지를 모두 다룹니다.
본문
이 계열의 함수들은 시스템에서 명령어를 실행할 수단과, 그런 명령어를 안전하게 만드는 수단을 제공해요.
한 가지 짚고 넘어갈 부분이 있는데, Windows에서는 모든 실행 함수가 cmd.exe를 통해 명령어를 호출합니다. 그래서 이 함수들을 호출하는 사용자는 그 명령어를 실행할 수 있는 적절한 권한을 갖고 있어야 해요. 유일한 예외는 bypass_shell 옵션을 지정한 proc_open()입니다.
주요 함수로는 exec(), shell_exec(), system(), passthru(), popen(), proc_open(), proc_close(), escapeshellarg(), escapeshellcmd() 등이 있어요. 특히 escapeshellarg()와 escapeshellcmd()는 명령어에 사용자 입력이 섞일 때 인젝션을 막기 위해 꼭 기억해 두면 좋습니다.