LAMPアプリケーションの作成を開始して以来、私は私のボックスの管理コントロールパネルを開発したいと思いました。 (面白くて教育的な目的で、そうでなければすでに市場にあるものを使います)
しかし、常に私を止めるのは、exec()関数(私が知っている唯一の方法)が悪いことを常に聞くことです。 「使用しないでください」、「誤ったコーディングです」「など。
この目的のためのより安全なオプションについて聞いたことはありません。したがって、私の質問は次のようになります。
あなたはいますか?
専用のWebサーバーでアプリケーションを実行し、パスワードで保護されたドキュメントルートを使用するだけでは十分ではありませんか?
まあ、これは私の質問です。
ベストアンサー1
私の考えの本当のリスクは、ユーザーの入力を次のいずれかに混在させることですexec()
。ユーザーが入力を提供できるため、ほとんどのリスクが発生する場所です。これをCLIに混在させることで、;
テキストボックスにセミコロン()を挿入し、入力後に他のコマンドを実行するなどの危険な作業を実行できます。引数を提供しました。
したがって、通常、読み取り専用モードでコマンドを実行することは、他のタスクを実行するよりも危険ではありません。
これは、本質的に、より使い慣れたSQLインジェクション攻撃と同じ問題です。