설명
string escapeshellcmd ( string $command )
escapeshellcmd() 는 문자열 중 셸 명령어를 속이고 제멋대로 명령을 실행할 가능성이 있는 글씨를 확장합니다. 이 함수는 사용자에 입력된 데이터를 함수 exec() 또는system() 또는 백 매틱 연산자 에게 넘기기 전 모든 확장을 실시하는 경우에 사용해야 합니다.
#&;`|*?~<>^()[]{}$\및\x0A \xFF 에 대해서는 그 글자 앞에 백 슬래시가 추가됩니다.' 및" 은 쌍이 되지 않은 경우에만 확장됩니다. Windows에서는 이들 문자에 가하는% 공간으로 바뀝니다.
파라미터
command
확장되는 명령
반환 값
확장된 문자열
예
사례 1escapeshellcmd() 의 예
<?php
// 의도적으로 임의의 수의 인수를 지정할 수 있게 하고 있습니다
$command = './configure '.$_POST['configure_options'];
$escaped_command = escapeshellcmd($command);
system($escaped_command);
?>
경고
escapeshellcmd() 는 명령 문자열 전체에 적용되어야 합니다. 또 그런 점에서 아직 임의의 수의 인수를 건네주는 것으로 공격을 허용합니다. 단일 인수를 확장하려면 대신escapeshellarg() 을 사용하지 않으면 안 됩니다.