8.6. Include ファイルや設定ファイルへのアクセスを防ぐ

Web ベースのアプリケーションを開発する時に、ユーザにプログラムの include ファイルや設定ファイルへのアクセス(読み込み)を認めてはいけません。 このデータは、システムに侵入するのに十分な情報(たとえば、パスワード)を提供する かもしれません。 このガイドラインは、ケースによって他の種類のアプリケーションにも適用できる ことを覚えておいてください。 このガイドラインを実行するのに、必要な作業がいくつかあります。

これらの解決方法では、ファイルが置いてあるディレクトリを誰もが読める場合、 ユーザのアクセスを防御できません。 ファイルのパーミッションを変更して、Web サーバの uid もしくは gid を持って いる者だけが読めるようにしてください。 しかしユーザが Web サーバで自分のスクリプトを実行できる(ユーザがファイルに アクセスするスクリプトを書ける)のなら、この方法ではうまくありません。 そもそも、サイトをホスティングしているサーバが信頼できない人間と共有ならば、 システムを安全にするのは困難です。 解決方法の 1 つは、Web サービスを提供するプログラムを複数立ち上げ、それぞれ パーミッションを別にすることです。この方法でさらに安全にはなりますが、実際 骨が折れる作業です。 また別の解決方法として、自分の uid や gid だけが対象ファイルを読めるように 設定し、サーバがそのスクリプトを「自分」のパーミッションで実行するように します。 後者の方法はそれ自身問題があります。サーバのある部分に root の権限 が必要となるからです。そうなると、スクリプトに必要以上のパーミッション が必要となるかもしれません。