1

これまでのところ、私の検索では、PHP 内から sudo コマンドを実行しようとしたときに作成される潜在的なセキュリティ ホールが示されています。

私の現在の問題は、PHP の exec() 関数を使用して、仕事用の Web サーバーで bash スクリプトを sudo として実行する必要があることです。現在、200 弱の Web サイトをホストしています。これを行う Web サイトは、私のオフィスの IP アドレスからのみアクセスできるように制限されています。これにより、利用可能なソリューションに付随する潜在的なセキュリティの問題が取り除かれますか?

方法の 1 つは、Apache ユーザーを sudoers ファイルに追加することです。これはサーバー全体に適用されると想定しているため、他のすべての Web サイトでも問題が発生します。

アクセスがオフィスに制限されている Web サイトで使用した場合に、セキュリティ上の脅威をもたらさないソリューションはありますか?

前もって感謝します。

編集:簡単な背景

これは、私が達成しようとしていることの簡単な説明です。私が勤めている会社では、観光関連事業のホームページ制作などを行っています。新しい Web サイトを作成するとき、新しいサイトのディレクトリ構造の作成、httpd.conf に含まれる Apache 構成ファイルの作成、新しい FTP ユーザーの追加、新しい Web サイトの作成を含むホスティング パッケージをセットアップする必要があります。いくつか例を挙げると、Web サイト CMS で使用するためのデータベースです。

現在、ディレクトリ構造を作成し、ユーザーを追加し、Apache構成ファイルを作成し、Apacheを正常に再起動するbashスクリプトをサーバー上に持っています。これはほんの一部です。私が目指しているのは、このシェル スクリプトを PHP スクリプトで使用して、Web サイト生成プロセス全体を使いやすい方法で自動化し、他の同僚や一般的な効率性を向上させることです。

4

1 に答える 1

1

少なくとも 4 つのオプションがあります。

  1. sudoers ファイルに apache ユーザーを追加します (そして、1 つのコマンドを実行するように制限します!)
    • この場合、php-apps のいくつかのセキュリティ ホールもスクリプトを実行する可能性があります (たとえば、呼び出し元の php を含めることができる場合、またはスクリプトも呼び出す別の URL mod_rewrite を使用して IP への制限をバイパスすることさえできます)。
  2. sビット でスクリプトにフラグを立てる
    • 危険です、しないでください。
  3. ローカル インターフェイスにのみバインドし、外部からアクセスできない別の Web サーバーを実行する
    • php を呼び出すリンクは、メインの Web サーバーからのリンクからアクセスでき、セキュリティは個別に処理できるため、これが私の推奨するソリューションです。このサーバーの新しいユーザーを作成することもできます。いくつかの単純なサーバーがその仕事をします。たとえば、python と perl 用のサーバー モジュールがあります。PHP インストールで exec を有効にする必要さえありません。
  4. デーモン (たとえば、ファイル イベントを監視するための inotify) または cronjob を実行して、ファイルまたは db エントリを読み取り、コマンドを実行します。
    • これは複雑すぎる可能性があり、デーモンがエントリを生成したスクリプトを確認できないという欠点があります。
于 2013-07-26T14:02:30.383 に答える