exec 견적의 $ PATH가 BASH $ PATH가 아닌 PHP $ PATH가 무엇이든간에 변환하려고 시도 중입니다.
$ (\$
)를 이스케이프하거나 작은 따옴표를 사용할 수 있습니다.
일반적으로 좀 더 안전하게하려면 escapeshellarg()
또는 escapeshellcmd()
을 사용해야합니다. 이 상황을 막았을 것입니다. 또한 사용자 입력을 사용하여 exec()
으로 전화를 걸면 사용자가 명령을 회피하고 자신의 악의적 인 쉘 명령을 호출하는 것을 방지 할 수 있습니다.
편집
사실, 당신이 어떤 이유로 당신의 이름/경로에 문제가있을 수 있습니다. 그냥 간단히 시작하십시오.
exec('/home1/myserver/bin/antiword ' .
escapeshellarg($_FILES['file']['tmp_name']), $mycontent);
되지 않은 경우,이 무엇인지 : 당신은 테스트하는 파일을 생성하고, $ _FILES에서 파일을 대체해야합니다
echo '/home1/myserver/bin/antiword ' .
escapeshellarg($_FILES['file']['tmp_name']);
이 작업을 수행합니다. 하지만 명령 행에서 직접 작동합니까?
'$ PATH' (아마도 혼자 정의하지 않은 경우)를 피하십시오. 'exec ("PATH = \ $ PATH ...'또는 작은 따옴표 사용 – mAu
) 잊어 버려요 :) –