[PHP-users 11862] スクリプト中のパスワードの隠し方

Naofumi Kondoh php-users@php.gr.jp
Thu, 28 Nov 2002 13:15:31 +0900


ソフト工房の近藤です。別スレッドにしました。

Re: PHP-users 11853

Osamu Shigematsu wrote:
> 重松です。こんにちは。
>
> 先のソースは typo だらけで済みません。
>
> それはそうと、以前スクリプトは漏洩するものという前提で、
> という話をしたときに、大垣さんから、
>
> 	環境変数に隠してはどうか
>
> とアドバイスをいただきました。

> で、これを試しているのですが、どうも phpinfo() で見ることができません。

私も試してみました。
phpinfo() では見えなかったです。PHP 4.2.1 です。

> 試した方法は、Apache の SetEnv ディレクティブを使う方法なのですが、
> .htaccess に
>
> SetEnv MY_PASS hoge

-- snip --

> 環境:
> 	VineLinux 2.5 (ftp), Pentium III
> 	Apache 1.3.27
> 	PHP 4.3.0RC1

重松さんと同じ  .htaccess で、getenv() で環境変数を取得できました。
(例) echo getenv('MY_PASS'), '<br>';

環境:PHP 4.2.1 apache 1.3.26  TurboLinux 8 WorkStation。



質問なのですが、.htaccess を、特定の PHP プログラム以外から
読めないようにするには、PHP を、SAFE MODE にして、スクリプト
の所有者と、.htaccess の所有者が同じでない限り、PHP のファイル
関数で読めないようにする必要がありますね。
(例)
-rw-r--r--  1 csl cslgrp     94 11月 19日 12:23 .htaccess
-rw-r--r--  1 csl cslgrp   2350 11月 19日 12:44 showenv.php

ただし、SAFE MODE は、PHP の中だけの話なので、
mod_perl とか、suEXEC を使わない CGI が許可されていると、
結局このパスワードを記述した .htaccess は、読めますね。

そういうことであれば、documentroot 以外の場所にパスワード
を記述したファイルを置いて、include するのとセキュリティー
上はあまりかわらないように思うのですが如何でしょうか?。

私の目的は、同一サーバーを使う他の group 所属のプログラマー
から、パスワードを隠したいということです。

それを実現するには、DSO 版をあきらめて、suEXEC で CGI 版を
動かして、UID の異なるプログラマーからは見えないようにする
か、SAFE MODE の PHP 以外のプログラムを動作させないように
するしかないでしょうか?。


PHP + PostgreSQL が利用可能な、格安レンタルサーバーがあり
ますが、あれは、どういう仕組みにしているのでしょうね?。

実験目的とか、善意の共同利用なら、パスワードが見えてしまって
もいいけど、レンタルサーバーという以上は、他人との共同使用
なので、DB のパスワードが見えてしまうというのは困ります。

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文        Email:  nkon@shonan.ne.jp
http://www.SOFTKOUBOU.co.jp/      http://www.shonan.ne.jp/~nkon/
2002-11-28(木)19:00-21:30 第8回PostgreSQL業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/