単純なPHP Shellをサーバーにアップロードしましたが、コードを実行しようとすると、次のいずれかのエラーメッセージが表示されます。
警告:Shell_exec()は...の 'ls'を2行目で実行できません
警告:Shell_exec()は[ls]をfor ...でforkできません
コードの実行を許可しないフォルダー特権があると思います。どうすればそれを回避できますか?
「open_basedir制限が有効になっている」ので、私のシェルを実行する方法はありますか?
PHP関数Shell_exec
はfork
システムコールを呼び出して、ls
の新しいプロセスを作成します。 fork
の呼び出しは、いくつかのセキュリティポリシーによってブロックされているようです。
ブロックされたシステムコールを使用しないPHPコードは引き続き実行できます。そのため、ls
を実行できない場合でも、次のようなコマンドを実行してファイルリストを取得できますこの:
<?php
print_r(glob('*'));
?>