[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業務アプリ分科会 勉強会
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/