• ベストアンサー

CGIとHTMLを別々のディレクトリにする理由

Apacheなどのデーモンでは、CGIなどを実行するディレクトリとHTMLを表示するディレクトリを別々に分けて設定するのが普通だと思いますが、 1つのディレクトリでCGIの実行も、HTMLの表示もできるようにしようと思ってます。 セキュリティーに問題があろうということは、うすうす感じてます。 が、具体的にどのような問題があるのかが分かりません。 具体的な例をあげて説明していただけますと助かります。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • acacia7
  • ベストアンサー率26% (381/1447)
回答No.2

まず、ファイルのアクセス制限について注意してみてください。 CGIなどがよく使われる用途にカウンターやBBSといったものがあります。 ここではCGIによってデータがどこかに蓄積されるわけです。 このためにはCGIによって書き込み可能な領域がサーバー上に必要です。 つまりCGIを経由すればいかなるファイルをも書き込み可能になる可能性を秘めているわけです。 例えば、CGIによりなんらかのセキュリティーホールなどを利用してツールとなるCGIがサーバーに書き込まれたとします。 するとそれを利用して同領域のファイルが書き換え可能になりえるわけです。 これから先はねずみ算状態。 ということでCGIにより書き込み可能なファイルと通常表示されるだけのファイルは別領域に置き、書き込みの制限、実行の制限などが加えられ、セキュリティーの維持を図っているのです。

tomkeifer
質問者

お礼

回答ありがとうございます。 お礼が遅くなってすみません。 被害を最小限のするということですね。

その他の回答 (1)

  • kazu-gto
  • ベストアンサー率25% (53/205)
回答No.1

CGIを使ってどの様なことをするのかわかりませんが,CGIを使えばサーバー上でコマンド操作することが可能になりますので,しっかりと管理しておかないとroot権限が奪われたり,データが流出する可能性があります. よくHPから個人情報が流出したというのは,データファイルを誰からでもアクセスできるような状態にしておいたりしたためです.

tomkeifer
質問者

お礼

回答ありがとうございます。 >データファイルを誰からでもアクセスできるような状態にしておいたりしたためです データをHTML表示用の領域に置いておいた場合、データのファイル名がバレたときに、 ブラウザから [ http://www.hogehoge.com/データ名 ]でブラウザにデータが表示されてしまうということですね。