[PHP-users 623] Re: セッション情報の漏洩を防ぐ方法

Yasuo Ohgaki php-users@php.gr.jp
Sat, 7 Jul 2001 16:22:00 +0900


大垣です。

VirtualHostは利用していないことを前提として返信します。

> お世話になります、新開と申します。
SNIP
> セッション情報をDBに保存すれば、そのような心配はないかと思います
> が、サーバを共同運用し、かつ、ファイルに保存している場合、
> セッション情報を他人から読みとられないようにするには、どうすれば
> よろしいのでしょうか。
> 以上、よろしくお願いします。

完璧では無いですが、session fileを保存するディレクトリのパーミッションを300にす
るとファイル名が解らないのでこれでほとんどの場合はOKと思います。(セッション保存
先のディレクトリはphp.iniで変更。OwnerはApacheのUserID。)

こうしておけばSESSION IDを推測してアタックされるた時と同じ程度の保護となります。
# 簡単なPHPスクリプトを作成して短時間に大量のIDを試すと言う方法は
# 残されますが、、、

ディレクトリリスティングが出来なくなるので、Sessionモジュールのソースをある程度
変更する必要があると思います。(ガーベッジコレクション関連のコード等。ガーベッジ
コレクションを使わなければ、変更の必要が無いかも知れません。root権限等でcronを
使ってガーベッジコレクションをすると言う方法も考えられます。)

DSOの場合も他に何か出来そうですが、とりあえず最初に思いついた方法をお送りしまし
た。念の為にスティッキービットをセッションファイルを保存するディレクトリに立てる
のを忘れないようにして下さい。

# FileよりDBを使った方が楽と思いますが、、、

--
Ohgaki, Yasuo (大垣 靖男) 
Mail: yohgaki@dd.iij4u.or.jp