つまり、 の値が であると言っているのです$_COOKIE['param']
がexec('ls -al')
、それが実行されたときにそれが実行されることを期待していますecho
か?
それはそれがどのように機能するかではありません。その Cookie の値は、実行されたコードの結果ではなく、文字列値"exec('ls -al')" になります。少し考えてみれば、Cookie がコードを自動実行できるようにすることがなぜ悪い考えなのかがわかるでしょう。
exec()
とにかくランダムなコマンドを実行することは、特にその入力がユーザーからのものである場合は、本当に良い考えではありません(Cookie が行うこと - ユーザーは、あなたを攻撃しようとするためにそれらを変更することができます)。
代わりに、コードが特定のコードを実行するシグナルとして解釈できる他の入力を使用する必要があります。たとえば、param
値に stringlist files
を保持させることができ、コードはその値を確認して実行exec('ls -al')
します。
ただし、危険なコマンドを誤って実行するのは非常に簡単なので、これを行うためにコードを実行するべきではありません。exec
代わりに、入力をサニタイズし、既知の値のみを実行した後で、PHP の組み込み関数を可能な限り使用する必要があります。
あなたの場合、PHPには、サーバーのファイルシステムとやり取りできる関数がたくさんあります。代わりに、それらを使用してシステム上のファイルのリストを取得してください。