[PHP-users 35628] Re: PHP5 session 管理と Http リダイレクトについて

Yasuo Ohgaki yohgaki @ ohgaki.net
2011年 11月 8日 (火) 13:02:53 JST


大垣です。

もう解決しているとは思いますが、誰も返信していないので返信します。
記憶だけで返信しているので誤りがあるかも知れないことを前提に聞いてください。

> 質問A) アプリケーションサイト側で session idを返す処理について
>
>  session idの取得処理の手順として、まず session_start()の呼び出しを行い、そのあと session_id()
>  を呼ぶことで session idを取得できるのでしょうか?
>  テスト環境では session_id()の戻りが nullになってしまいます。

session_start()が失敗しているはずです。Sessionモジュールの初期化に成功すればセッションID
が生成されます。

> 質問2) session idを URLパラメタで渡す処理について
>
>  hoge.php?session_id=xxxxxxx
>
>  という形で引き渡そうとしていますが、?以降の "session_id"の部分の文字列はデフォルトが "session_id"
>  であり、特に変更しない場合はこのまま使えば良いのでしょうか?

Session IDの名前はphp.iniやsession_name()で設定できます。(session_startの前に呼ぶ)
デフォルトのセッションID(PHPSESSID)でも使えます。

URLリライタを使ったtrans_sid機能はセッションアダプション脆弱性対策をしていないと
セッションが漏洩したり盗まれたりします。

http://blog.ohgaki.net/how-to-make-php-session-strict-by-php-script
http://blog.ohgaki.net/php-session-adoption-1

を参考にしてください。

--
Yasuo Ohgaki
yohgaki @ ohgaki.net



2011/9/8  <tsujikawa.ms @ ncos.nec.co.jp>:
> 初めて質問致します。
>
> PHP5 on windows/Linuxのウェブサーバ環境(アプリケーションサイト)において、
> ポータルサイトに対して session idを返すことでログイン状態を維持させる処理を実現しようと
> しています。
>
> 1) ポータルサイトからアプリケーションサイトに対して"ユーザA"のログイン処理を行う
> 2) アプリケーションサイトは認証を行い、認証 OKの場合 session idをポータルサイトに返す
> 3) ポータルサイトは新たな webブラウザを開き、URLパラメタでに session idを埋め込んで渡す
>   例)https://www.hoge.com/hoge/hoge.php?session_id=xxxxxx
> 4) アプリケーションサイトは、"ユーザA"ログイン済みの状態と認識する
>
> 質問は主に二つです。
>
> 質問A) アプリケーションサイト側で session idを返す処理について
>
>  session idの取得処理の手順として、まず session_start()の呼び出しを行い、そのあと session_id()
>  を呼ぶことで session idを取得できるのでしょうか?
>  テスト環境では session_id()の戻りが nullになってしまいます。
>
> 質問2) session idを URLパラメタで渡す処理について
>
>  hoge.php?session_id=xxxxxxx
>
>  という形で引き渡そうとしていますが、?以降の "session_id"の部分の文字列はデフォルトが "session_id"
>  であり、特に変更しない場合はこのまま使えば良いのでしょうか?
>
>  また、http://php.net/manual/ja/session.idpassing.phpによると、下記のように session idは先頭の
>  URLパラメタに指定するべきと書かれていますが、PHPのセッション管理として以下の仕様になっているのでしょうか?
>
>  >file.php?var1=value&mysession=123
>  >
>  >The SID must come first:
>  >
>  >file.php?mysession=123&var1=value
>
>
>
> 以上、PHP素人の質問で恐縮ですがお教えください。
>
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
>


PHP-users メーリングリストの案内