システム コマンドの使用は、特にリモート データを使用して実行するコマンドを構築しようとしている場合、危険な操作です。汚染されたデータが使用されると、コマンド インジェクションの脆弱性が発生します。
Exec() はシェルコマンドを実行するために使用される関数です。これは実行を返し、コマンド出力の最後の行を返しますが、2 番目の引数として配列を指定すると、出力の各行が配列内の要素として格納されます。使用法は次のとおりです:
<?php $last = exec('ls', $output, $return); print_r($output); echo "Return [$return]"; ?>
ls コマンドをシェルで手動で実行すると次の出力が生成されると仮定します。れーれー
可能であれば、シェル コマンドの使用を避けることをお勧めします。使用する場合は、コマンド文字列の構築に使用されたデータを必ずフィルターし、出力をエスケープしてください。 シェル コマンドを実行する方法は数多くありますが、実行する文字列を作成する際には、フィルター処理されエスケープされたデータのみが許可されるようにすることが重要です。注意が必要な他の同様の関数には、 passthru() などがあります。 Popen( )、shell_exec( )、および system( )。繰り返しになりますが、可能であればすべてのシェル コマンドの使用を避けることをお勧めします。
上記は PHP セキュリティ コマンド インジェクションの内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。