[PHP-users 5006] Re: [SECURITY]:PHP4 session spoofing exploit

Yasuo Ohgaki php-users@php.gr.jp
Sat, 26 Jan 2002 13:02:03 +0900


大垣です。

Naofumi Kondoh wrote:
> ソフト工房の近藤です。
> 
> Youichi Iwakiri wrote:
> 
>>いわきりです
>>
> 
> ....略....
> 
> 
>>あくまで、PHPによる内部処理で弾かれるだけで、ファイル自体の
>>パーミッションはグループまたはワールドに参照権を付加することになるので
>>localユーザからは丸見えですね。ログインを許さなくてもPHP以外の言語
>>(たとえばperl)が利用可能であれば、簡単に情報を見ることができます。
>>
>>Apache2に期待というところでしょうか。
>>
>>#レンタルサーバ屋さんはどうやって共有サーバ資源のセキュリティを
>>#確保しているのか興味あるところです。
>>
> 
> コメントに反応しますが、レンタルサーバー屋さんが
> どうしているかは、私も知りたいです。
> 
> 某レンタルサーバーで、PostgreSQL を使ってみたところ、
> 他の利用者の DB の中身も丸見えでした。

それはあんまりだと思います。DBを見えないように設定するのは
簡単ですから。でもその程度が普通なんでしょうか?

> 
> DB の場合、パスワードを使って保護するにも、その
> パスワードの入ったファイルが、Web User (nobody 等)
> から読めなければならないので、PHP の include を
> たどって、 パスワード設定の PHP ソースを読めるはず
> ですね。なにか、うまい防御手段はあるのでしょうか。

私であれば、

httpd.conf
顧客毎にVitualHostを作り、httpdのUIDを
別にします。必要であれば、GIDも別にします。
顧客が変更できないphp.iniのエントリを定義します。
safe_modeをOn、必要であればsafe_mode_gidもOn
にします。doc_root等の必要な設定もします。

php.ini
全ての顧客に共通かつ変更可能なiniエントリを定義します。

.htaccess
顧客が変更したいiniエントリを定義します。

ユーザーは各自のUID/GIDでファイルを作成します。
実行できる関数、パーミッション等を適切に設定すれば、Web
サーバーからのコンテンツの書き換えも防げます。

IPC/shared memの問題が無ければ、chrootで複数のhttpdを
動作させると言う方法も可能かも知れません。

# 私はレンタルサーバー関係の仕事はしていません。
# 念のため :)

-- 
Yasuo Ohgaki
yohgaki@dd.iij4u.or.jp

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/