引数でコマンドを実行する方法はありますか?「シェル」はありません。phpでシェルを使用しないでコマンドを実行する
exec()
とshell_exec()
の両方がシェルで指定された文字列を実行するため、入力されたユーザーのデータをエスケープする必要があるという問題があります。
それが好きで行う方法はあります:
some_exec(["command","argument","argument])
1は、例えば、PythonやJavaのためにそれを行うだろうと。
いくつかの引数をエスケープしなくても、引数を指定してコマンドを実行することができます。
私はルータのUIで作業しています.Wifiキーはコマンド で設定されていますが、今はキーに含まれる文字数を制限する文字列をエスケープする必要があります。私がキーを逃れることができなければ、問題なく注射をすることができます。これは、実際にこの場合は厄介な問題である理由
明確化 理由は、私は、次のコマンドを実行する必要があるということです。
[email protected][0].key='<the password>'
問題は、以来、パスワードが中に設定されていることですこのパスワードの文字列$il|\|t
は\$ile\|\\\|t
になり、間違ったパスワードが有効な問題になります。したがって、保存されたパスワードは、入力されたパスワードと同じではありません。
そして、我々は文字列にパスワードを入力していても、我々はまだ、私は引数をエスケープしないようにあなたの必要性を理解するいくつかの問題があり、この' ; reboot ; '
[link] http://php.net/manual/en/function.exec.php [ – sam