[PHP-users 785] Re: PHPコードを他のユーザから隠蔽する方法
Naofumi Kondoh
php-users@php.gr.jp
Sat, 21 Jul 2001 03:46:50 +0900
ソフト工房の近藤です。こんばんは。
Toshikazu Yoshikawa wrote:
>
> こんばんは、吉川@アンカットです。
>
> たまたまPHP-3.0.18-i18n-ja-2とPostgreSQL-7.1.2を使用した
> スクリプトを書いてて、ふと疑問に思ったことがありまして質問させていただきます。
>
> PHPからPostgreSQLに接続する際に、pg_connect()関数を用いますが、
> データベースはpg_hba.confの設定によりパスワード保護を設けてますので、
> 引数として "dbname=aaa user=bbb password=ccc"の形で利用しています。
> 当然、スクリプトの中にデータベース接続のためのパスワードを埋め込まざるを得ません。
....略....
私も同じ問題をかかえていて、対策検討中のところです。
吉川さんのご質問から少し外れますが、スクリプト中の
パスワードについては、次のような各ケースへの対応を
思案中です。いいアイデアがありましたら、お教えいた
だきたく。
(A) 同一サーバーの他の Web User から見られないようにする。
1。Zend コンパイラを使用する。
2。safe_mode を使用。
使用目的や環境によっては使えない場合がある。
ユーザー間で機密にしなければいけないデーターを、同一
Web Server 上のスクリプト言語で運用すること自体に無理
があるのでしょうか。
(B) プログラム外注先に実機パスワードを知られないようにする。
1。DB 接続は、指定ライブラリー(include file)のクラス
を使ってのみ行なうこととし、同ライブラリから、パス
ワード記載したファイルを include する。ファイル名
は、実機/開発機同一だが、中身のパスワードは変える。
(C) 保守を外注する場合。
開発機上で保守可能なら(B)と同じ。
実機でしか発生しないようなトラブルで実機での検証が必要な
場合が問題。
1。(B)と同様な手法をとった上で、保守終了後に、スクリプト
と、DB のパスワードを同時に変更する。
多数のユーザーを使い分けていると結構面倒。
2。パスワードを C などのコンパイル可能な言語から、p_open
などで実行時に PHP に渡すようにする。 これだけだと、
実行すれば、パスワードがわかってしまうので、同一権限
のユーザーを保守用と本運用用に2組づつ登録しておいて、
保守時には、ワンタッチで、保守用ユーザーに切りかえる。
あるいは、ワンタッチで、DB パスワードまで書き換えるよ
うなツールを作る。
UNIX で、CE などがハードメンテにくるとき、ROOT のパス
ワードが必要なので、root とは異るユーザー名パスワード
のルート権限ユーザーを CE 用に登録しておくのと同じよ
うな発想です。勿論、保守が終れば即パスワード変更。
外部プログラム呼出しでオーバヘッドがかかりますが、
login の頻度は、他の処理よりはるかに少いはずなので、
さほどネックにはならないと考えてますがどうでしょう。
まだ検討中で、どれも一長一短なんですが、何かうまいやり
方がないでしょうか。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(株)ソフト工房 近藤直文 Email: nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/