5

httpd.conf やバインド ゾーン ファイルなどの構成ファイルと対話する Web アプリケーションを扱う際の基本的なアドバイスを教えてください。

コードを完全に検証せずに恣意的な実行を許可することは実際には非常に危険です。しかし、仮想ホストを apache 構成に追加できる小さなアプリを作成する任務を負っているとします。

コードを完全な権限で実行しますか、将来の変数をデータベースに書き込み、cron ジョブに (完全な権限で) データベースから変数を取得してテンプレート構成ファイルにスローするスクリプトを実行させますか?

この問題に関するいくつかの考えと貢献をいただければ幸いです。

tl;dr - Apache の httpd.conf などの構成ファイルのエントリを更新/作成する Web アプリを安全に作成するにはどうすればよいですか?

4

2 に答える 2

1

私はUnixのセキュリティの第一人者ではありませんが、次の基本的なことを考えてください。

  • Webアプリが特定のユーザーとして実行されていることを確認し、ユーザーが変更することになっているファイルに対してのみ特権権限を持っていることを確認してください。

  • 任意の入力をファイルに追加することを許可しないでください。厳密な形式で、各フィールドに、azや0〜9のみなど、含まれるべきものだけが含まれるように検証されます。

  • HTTPSを使用してサイトにアクセスします。

私は本当の教祖から来ることがもっとあると確信しています。

于 2011-01-01T08:31:32.400 に答える
0

コードを完全に検証せずに恣意的な実行を許可することは実際には非常に危険です。

真実。

しかし、仮想ホストを apache 構成に追加できる小さなアプリを作成する任務を負っているとします。

1点目とは関係ありません。まったく無関係。確かに、なぜ最初のポイントがそこにあるのでしょうか?

仮想ホストの追加は単純なスクリプトです。スクリプトを記述して実行するだけです。特別な権限が必要です。しかし、それは「コードの任意実行」ではありません。そして、それは「完全に検証済み」になります (それが何を意味するにせよ。あなたがそれを書き、あなたがそれを検証します。)

これは「Web アプリ」としては適切な選択ではありません。また、デーモンにとっても良い選択ではありません。実際、「vhost を apache 構成に追加する」ことと「デーモンを制御する Web アプリケーション」との間の関連性を理解するのは非常に困難です。

ファイルを更新するだけのスクリプトです。特にない。権限が必要なため、一部の限られたユーザーのみが実行できます。そこにも特別なことは何もありません。を使用しsudoます。

コードを完全な権限で実行しますか?

明らかに。スクリプトは、いくつかの権限がないと仮想ホストを更新できません。

「あなたのコード」でない限り、仮想ホストを更新するスクリプトを意味するものではありません。誰かが仮想ホストを更新するスクリプトを実行できるようにする Web ページなど、別のことを意味する場合。その場合、スクリプトを実行する Web アプリとスクリプトを混同しています。

将来の変数をデータベースに書き込み、(完全な権限を持つ) cron ジョブに、データベースから変数を取得してテンプレート構成ファイルなどにスローするスクリプトを実行させますか?

もちろん。人々はそうします。それはひどく複雑なようです。

celery独自のバックグラウンド プロセッサをローリングする代わりに 使用します。http://ask.github.com/celery/getting-started/introduction.html

于 2011-01-01T13:56:15.053 に答える