[PHP-users 778] PHPコードを他のユーザから隠蔽する方法

Toshikazu Yoshikawa php-users@php.gr.jp
Thu, 19 Jul 2001 23:56:35 +0900


こんばんは、吉川@アンカットです。

たまたまPHP-3.0.18-i18n-ja-2とPostgreSQL-7.1.2を使用した
スクリプトを書いてて、ふと疑問に思ったことがありまして質問させていただきます。

PHPからPostgreSQLに接続する際に、pg_connect()関数を用いますが、
データベースはpg_hba.confの設定によりパスワード保護を設けてますので、
引数として "dbname=aaa user=bbb password=ccc"の形で利用しています。
当然、スクリプトの中にデータベース接続のためのパスワードを埋め込まざるを得ません。

このスクリプトは私のアカウントの元で作成してるのですが、
私はホストのルート権限も持っていますので、
スクリプトのユーザIDとグループIDを、
Apacheを動かしているユーザID・グループIDに変更し、
パーミッションも400にしました。

これで、同ホスト上に他のアカウントを持つユーザからも
中身を見られることはないだろうと考えてたのですが、
良く考えると、PHPにはfopen()関数があります。
ファイル名さえ分かっていれば、他のユーザがfopenで
そのファイルを開くスクリプトを書けば、ソースは丸見えになってしまいます。

PHP4を使用すれば、ソースをバイナリに変換する手段もあるようなので
このあたりはクリアできそうですが、今のところはまだPHP3でいこうと思っています。
仮にソースが覗かれてしまうことを防ぐ手段はなかったとしたら、
逆にデーターベース接続のパスワードが漏洩しないうまい方法はないものでしょうか。

このような問題にどなたか対策されてる方はいらっしゃいませんか?
PHP+PostgreSQLをウリにしてるようなレンタルサーバ業者は、
どのように設定してるんだろう・・・大抵はバーチャルホストですよねぇ。

---
unCut Toshikazu Yoshikawa
mailto:toshi@uncut00.com