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

Naofumi Kondoh php-users@php.gr.jp
Wed, 18 Jul 2001 10:34:50 +0900


ソフト工房の近藤です。

# 新開さんの方が十分お詳しそうで余計なフォローでした。

renzo@digital-palm.com wrote:
> 
> 新開です。

....略...

> 近藤さん
nkon> > COOKIE を使うこと自体がある程度機密レベルを低下させ
nkon> > ています。それを承知なら、COOKIE は手軽で便利ですが。
> Cookieを使用せずにセッションIDをサーバに送信するにはGETかPOSTしか
> ないですよね。CookieはGETやPOSTよりセキュリティ上、危険ということ
> でしょうか?(意味を取り違えていましたら、すいません)

もっと単純な話で、COOKIE の場合、ログアウトのような
特定の処理をしないと、COOKIE が有効期限までしばしの
間 PC の中に残るので、MS Windows 9X などで同一PCを別の
人がPCへのログイン名なしで使うと他の人に対しても
COOKIE が有効になるとか、COOKIE の中身をみれるとか
いう程度の話です。

安全性だけを考え、REFERER 問題を重視すれば、
POST > COOKIE > GET ですかね。

> 私が認識しているGETと比較したCookieの利点は
> 1:セッションIDのReferer漏れがない
> 2:うっかりミスでセッションIDを書き換えられる心配がない

  何十桁もある長いIDにしてサムチェックなど
  2重チェックにすれば、簡単に他の人の有効
  なセッションを乗っ取ることはできないとは
  思いますが、危険性があることは確かですし、
  目に見えるのが気持悪いという方も。

> 3:セッションIDがブラウザの履歴に残らない
> です。特に3は重要だと思っています。ブラウザの履歴はサーバからは、
> 操作のしようがないので。

  ブラウザ側(PC クライアント側)の話ですよね。
  COOKIE も、ログアウト処理でも実行しないと残る
  し、見ることもできます。

  以前川里さんが、BODY TAG の ONUNLOAD イベント
  で、ログアウト処理を実行する話をされてました
   ね、参考になると思います。

   ブラウザの履歴だけなら、JavaScript を使えば
   残らないようにもできると思いましたが。

...略....

> また、よろしければご教授願いたいのですが、ApacheのUserをnobodyの
> ままの場合、どのような不都合がありますでしょうか。思いつくのは
> 1:nobodyの持つ権限に問題がある
> 2:ApacheのUserIDを調べる手間が不要な分だけ、クラックされやすい
> 3:専用のユーザを作成して、独自に管理すべき

おっしゃるとおりです。

一垓にはいえませんが、nobody は、特別なパーミッションを
必要としないか持つべきでない特別なユーザー名として使い
はじめられたという歴史的経緯もあるので、Web アプリとして
独立して管理できる専用のユーザー名にすべきだということです。
あえて、nobody を使用するメリットは考えられません。


_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
 (株)ソフト工房   近藤直文   Email:  nkon@shonan.ne.jp 
           PostgreSQL 汎用DB検索ツール デモ  
      http://www.softkoubou.co.jp/cslweb/index.php3
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/