トップページ⇒php
216コメント70KB

Session管理してる?

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/23(水) 23:24ID:ZWP7e.Mk
PHP3だとSession使えないから、id&passをhiddenで吐き出している。
DBで一意のsessionidを作ってやりゃーいいんだけどExpireとか
めんどくさい。

ASPやPHP4ならSession管理楽だよね。
0002名無しさん@お腹いっぱい。2001/05/23(水) 23:32ID:???
クッキーですれば?
0003名無しさん@お腹いっぱい。2001/05/24(木) 01:17ID:???
厨房質問でごめんなさい。

>ASPやPHP4ならSession管理楽だよね。
ASPやPHP4が、自分に代わってhiddenのパラメータなり(POSTの場合)、
GETパラメータなりを管理してくれてるのでしょうか?
tcp/ipの接続を持続してるとか、勝手にクッキー使ってるってわけでは
ないと思うのだけど、どうやってSessionを実装しているのかなあ、と疑問
に思ったので。
0004名無しさん@お腹いっぱい。2001/05/24(木) 10:42ID:???
>>3
ASPはcookie投げてるという話を聞いたなあ。
僕はperl + Apahce::Session with cookie ばっかだから知らないけど。
0005ナナシファン2001/05/24(木) 10:55ID:X3JWHld.
>>3
デフォルトで勝手にクッキーを使うよ。クッキーを使えない端末の
ときは、configureの時に--enable-trans-sidしてあれば
全部のリンクにsession idをつけてくれる。
ただ、<a href=だとつくんだけど<a taskだとだめなんだよなぁ〜
というわけでHDMLの場合は自分でつける必要アリ
0006俺もナナシファンだったり2001/05/24(木) 12:10ID:VUBEv.zk
>>4
Apache::Sessionってどうよ?
セッションのガベージコレクションの機能とかないんじゃなかったっけ?
俺は1リクエスト毎にデータベースに書きに行くのがすごくうざくって、
ちょっと触っただけでやめちゃったけれど・・・
000732001/05/24(木) 15:32ID:???
Session管理は結局どれも内部でクッキーかGET(orPOST)パラメータですか。
そりゃそれ以外ないよな。

あとは携帯電話の固体IDだけど、503iから使えるようになった奴ですが、
210iではどうだろう?
00084じゃないけど2001/05/24(木) 20:26ID:CDMAiqEA
>>6
セッションタイムアウトは自動でやってくれないね。
タイムスタンプのフィールド用意しておいて、cronで削除が一般的かな。
mod_perl下で使えば、かなり使えると思う。
000942001/05/25(金) 03:05ID:C8bJzxHM
>>8
言う事なくなっちゃった(笑)
そういや、mod_perlのスレないね...。ま、perl板でも繁盛してなかったけど。

>>7
あと、URLにセッションIDを埋め込む方式があるね。
携帯とPCを両用したいときとかによくつかってます。
001032001/05/25(金) 11:07ID:y6UssZUU
>あと、URLにセッションIDを埋め込む方式があるね。
>携帯とPCを両用したいときとかによくつかってます。

PATH_INFOですか?
それもGETパラメータ(URL)の一種だとは思いますが、
QUERY_STRINGと比べて特に携帯だからPATH_INFOを使う
意味も無いような、、、
逆にPATH_INFOでも使う分には同じなのでどちらでもいいし、
QUERY_STRINGやPOSTパラメータはシステムによっては
自動的に解析される部分に入ってしまうだろうから、それらの
仕組みとぶつからないというメリットかな?
0011名無しさん@お腹いっぱい。2001/05/25(金) 14:35ID:jbE0alI6
PHP4セッション管理の詳しく説明してる
サイトってありますかねー?
0012名無しさん@お腹いっぱい。2001/05/25(金) 18:47ID:???
てかセッションってなんですか?
0013電動ナナシ2001/05/26(土) 00:03ID:???
>>11-12
ここ見たら?
http://www.itboost.co.jp/php/php_12.php
http://www.phpbuilder.com/columns/ying20000602.php3?print_mode=1
0014ナナシファン2001/05/29(火) 12:40ID:S1fqIqMg
>>13
うぉぉぉ!まさにコレ!
http://www.phpbuilder.com/columns/ying20000602.php3?print_mode=1

MySQLでセッション管理したかったんだよねーー!!ロードバランサは
(いいものになると)結構お値段が張るので、TurboLinux ClusterServer
とかを使ってWWWのクラスタリングをしたかったんだけど、セッションを
どーしよーかと途方に暮れてたところでした!
電動ナナシさん、サンクス!これからも有益な情報をお願いしますです!
0015名無しさん@お腹いっぱい。2001/05/29(火) 18:09ID:i2JkDuIg
セッション管理はPostgresでは難しいのかー?
MySQLの方がいいのかな?
0016名無しさん@お腹いっぱい。2001/05/29(火) 18:57ID:oi4kyUtI
>>10
PATH_INFOじゃなくても、mod_rewriteで
ごにょごにょやる手もあるよ。環境変数として渡したり。
0017名無しさん@お腹いっぱい。2001/05/30(水) 10:48ID:???
>>15
webのセッション管理にDBMSって関係有る?
PHPのインターフェースの部分が、DBMSによってセッション管理が
用意されている/いないの差があるということかな?
おれはPHPでないので知りませんが。
0018電動ナナシ2001/05/30(水) 15:13ID:???
セッション管理は頻繁に発生する、トランザクションのような一貫性保証は
不要、ということで、PostgreSQL のような重装備の RDBMS よりも MySQL の
ような軽くて高速なデータベースが向いているということでしょ。

すでに PostgreSQL があってそれを使いたいということなら、別にそれでも
いいでしょ。セッションハンドラは別途書かないといけないというのはどの
RDBMS でも一緒。
0019名無しさん@お腹いっぱい。2001/05/31(木) 12:55ID:6kiiO4aQ
セッション管理ってなんで必要なの?
0020名無しさん@お腹いっぱい。2001/05/31(木) 19:37ID:???
>>19
衝撃の質問!
0021名無しさん@お腹いっぱい。2001/06/01(金) 10:08ID:lW7xbRZQ
PHPLIB+MySQL+PHP3.0.9でセッション管理してます。ただ、レンタル
サーバーなんで都度requireしなければいけないのですが...
しかし、国際版PHPじゃないのがつらすぎる。Perl+DBIのほうが開発早かった
かもしれんッス
0022電動ナナシ2001/06/01(金) 17:50ID:???
>>19
常に必要ってわけじゃない。
Web ページ間で変数を引き渡す手段が必要なときに有用ってだけ。

>>20
3.0.9 って思いっきりセキュリティホールがあるじゃん。
バージョンあげてもらうついでに国際化版にしてもらおう。
それが無理なら Perl を使ったほうがマジでいいぞ。
0023名無しさん@お腹いっぱい。2001/06/11(月) 11:59ID:BchxEcFA
ちょっと質問。
よくユーザ登録のページで情報を入力しsubmitして
確認画面がでますよね。でソースを見ると入力内容をHidden
で渡してるものもあれば、Hiddenを使用していないものもあります。
Hiddenを使用せず渡すのは、s_id見たいなものを
をキーにして入力内容をDBに毎回insertしてページ間でデータが
渡っているのでしょうか?それとも別の方法があるんですかね?
疑問だったので・・・。
0024sage2001/06/11(月) 12:12ID:???
>>23 cookie
0025sage2001/06/11(月) 12:11ID:???
>>23 cookie
0026名無しさん@お腹いっぱい。2001/06/11(月) 12:44ID:???
またはipを基に一時ファイル作成とか…。
まぁ普通はCookieだと思うが
0027名無しさん@お腹いっぱい。2001/06/12(火) 12:44ID:???
cookieに依存すると、専用端末や携帯電話やcookie offに対応することに
なったときに面倒っすよ。趣味でPCだけ相手にしているときにはいいけど。
0028名無しさん@お腹いっぱい。2001/06/12(火) 13:16ID:???
>>27
ソース見てhiddenがないのはどうなってるのかって聞いたから例としてcookie
と言ったまで。

そりゃ状況によって方法は変えますよ、わたしゃ。
0029名無しさん@お腹いっぱい。2001/06/22(金) 12:49ID:yGqQ.0ks
age
0030殿堂ナナシ2001/06/22(金) 22:26ID:???
>>23
Servlet ではセッションはサーバのメモリに保持する。
ファイルやDBはオーバーヘッドがあるのであまりないね〜。
PHP4 はファイルですよね(よく分からんけど)

>>24
クッキーに情報自体を保持するのは、一般的?に
セッション管理とは言いにくいような。。。
# セッションIDは別
0031名無しさん@お腹いっぱい。2001/06/22(金) 22:34ID:???
>>30

セッション終了時に消えるクッキーをセッションクッキーって
言うの知らないの?
0032殿堂ナナシ2001/06/22(金) 23:21ID:???
>>31
怒ってる〜?
そうだね。レスポンスヘッダに設定する有効期限を無しに
すればセッションが続く限りクライアントが情報を保持するよね。

んで、そのセッションクッキーってのを使うと
セッション管理してるということになるの?
hidden と同じでクライアントに投げたら投げっぱなしなので
管理とは言いがたいような気がします〜。

毎回切断される HTTP で継続して情報を保持するために
サーバでランダムな ID を発行し、それをキーにクライアントと
やりとりを行う。
それをセッション管理と言う。
0033名無しさん@お腹いっぱい。2001/06/23(土) 03:44ID:???
>>32
そのやり取りって、クッキー使ってんじゃないの?
0034名無しさん@お腹いっぱい。2001/06/23(土) 13:09ID:???
どっちにしてもcookie使わない方法はないと思うが。
もちろん、擬似的なセッション維持だとは思うけど。
データをどこにもつかって事だと思うけど、
cokkieはドメイン毎に4Kまでの制限があるから、
ふつうサーバーでデータは保持する。
0035殿堂ナナシ2001/06/23(土) 22:56ID:???
クッキーだけでなく、サーバで発行したランダムなIDは次の
いづれかでやりとりされる。

・クッキー
・get リクエスト
・put リクエスト

このIDを普通はセッションIDっていうよね。
最近の Java や PHP では意識はしなくてもいいけど。
0036名無しさん@お腹いっぱい。2001/06/24(日) 08:45ID:???
>・クッキー
>・get リクエスト
>・put リクエスト

結局hidden以外はcookieじゃん。
0037名無しさん@おへそいっぱい。2001/06/24(日) 12:09ID:???
URL Rewrite を忘れてる。<A HREF="/a/b/c;98A30x7"> みたい
なの。現行のステートマネージメントは

 ・Cookie の受け渡し
 ・HIDDEN フィールド
 ・URL Rewrite

で行われている (Servet の話だけど)。
ちなみにセッション ID がランダムに振られるシステムは設計が
おかしい。
0038殿堂ナナシ2001/06/24(日) 21:36ID:???
間違えた。。。 put は post です。。。

・クッキー <- Cookie の受け渡し
・post リクエスト <- HIDDEN フィールド
・get リクエスト <- URL Rewrite
私の表現がおかしい〜?

URL Rewrite は クッキーが使えないときにAP サーバが
セッションIDを URL に Rewrite するっていうものだよね。
最近、セキュリティ的に問題があるので使ってはいけないというのが
良く言われてるけど。

セッションIDがランダムに振られるのがおかしいというのはなぜ〜?
最近はAPサーバにセッション管理が実装されてるから
あまり意識してないもので。。。
一意性の問題?
0039名無しさん@おへそいっぱい。2001/06/25(月) 00:25ID:???
そう、一意性の問題。普通はシーケンシャルに採番して一意性を
維持したままシャッフルすると思われる。ちょっと揚げ足を取っ
てみただけ。

現行のステートマネージメントメカニズムは、どの方法も SSL と
組み合わせないとセキュリティ的に問題ありだね。というか
そんなの Web の常識だったはずなのに、なぜ突然ひろみちゅが
騒ぎ始めたのか分からんよ。

URL Rewrite/HIDDEN フィールド
 ソースを見れば一目瞭然。URL 欄にも表示される。ジャンプ先
 サイトでは Referer ヘッダで参照可能 (ブラウザの種類と
 バージョンにもよる)。自サイトを SSL 化しても Referer
 ヘッダは漏れてしまうかも (なりすまし接続は無理だろうが)。

Cookie
 丸見えでない分 URL Rewrite/HIDDEN フィールドよりまし
 だが平文であることには変わりない。プロキシサーバなら
 余裕で盗める。期限付きのはファイルで残る。

# 昔、クライアント側の IP アドレスを使ってセッション ID
# にハッシュかければセキュリティもバッチリでは? と発明
# しかけたが、程なくプロキシの存在を忘れているのに気づ
# いた。
0040名無しさん@お腹いっぱい。2001/06/25(月) 15:58ID:???
>>30
クライアント側のクッキーにはIDのみで、
セッション情報はサーバ側に保存されるので
セキュリティ的には問題ない
と、どっかで読んだ覚えがあるんですが。
0041402001/06/25(月) 15:59ID:???
>>30は>>39の間違いでした。
0042名無しさん@おへそいっぱい。2001/06/26(火) 10:43ID:???
セッション ID を盗まれると言うことは、意味的にサーバサイドの
セッション情報ごと盗まれるのと等しい。ただ、情報が丸見えでは
なく、どのような情報か想像しずらいという人間的な利点があるだけ。
ユーザ認証後のセッション ID を盗まれたら、アプリケーションを
乗っ取られたのと事実上同じ。セキュリティを確保したければ SSL
と併用せれ。
0043名無しさん@おへそいっぱい。2001/06/26(火) 10:45ID:???
セッション ID を盗まれると言うことは、意味的にサーバサイドの
セッション情報ごと盗まれるのと等しい。ただ、情報が丸見えでは
なく、どのような情報か想像しずらいという人間的な利点があるだけ。
ユーザ認証後のセッション ID を盗まれたら、アプリケーションを
乗っ取られたのと事実上同じ。セキュリティを確保したければ SSL
と併用せれ。
0044名無しさん@お腹いっぱい。2001/06/26(火) 15:40ID:???
>43
ID+有効期限を暗号化して発行すれば、
多少マシになる。
0045名無しさん@おへそいっぱい。2001/06/26(火) 17:27ID:???
>>44 その暗号化のキーは?
0046名無しさん@おへそいっぱい。2001/06/26(火) 17:28ID:???
>>44 その暗号化のキーは?
■ このスレッドは過去ログ倉庫に格納されています