スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ログインミスについてby php session id

最近,ログインしたら別の人でログインになってしまうという,致命的なエラーが発生していました
原因を追究できたので(たぶん)その備忘録
症状
もともとPCでログインできる分には問題は発生しません.
携帯でログインしている人たちでは問題が出ていたようです.
しかも最近になって.

しかし,おそらく問題が発生しだしてからログイン周りのソースは全く触れていません.

自動ログインで何かしら問題が発生しているかもしれないのでそのあたり見てみました.

自動ログイン周りの仕様

PC,携帯ともに自動ログインはクッキーを使用しています.
クッキーはローカルのPCにデータを暗号化して保存しといて(登録システムではメアドとパスですね)
その情報をログインするときに拾ってきてデクリプトそれを自動であてはめるみたいな仕様です.
※ちなみにクッキーの有効期限は,セキュリティの観点上?30日なので,それを過ぎるともう1度クッキーを生成(自動ログインをもっかいやり直し)になります.無期限にも設定できるっぽいけど一応30日で.

ただしdocomoだけは別の方法をとっていて,端末に固有のIDを取得してそれをDBに登録して認証を行っています.

原因は自動ログインじゃないぽ
直観的に,特にdocomoの自動ログインが怪しいと思っていたのですが・・・
docomoだけじゃなくsoftbankでも出ているようなのでこれが原因とは言い辛い・・・
し,ソースを見てフローチャートに書き下しても何の問題もなさげ
原因はここではないでござるという結論に至りました

あきらめかけていたとき
まぁ致命的なんであきらめちゃダメなんですが,
携帯から俺もログインしてみると,携帯用ページのアドレスがなんとPHP SESSION IDが含まれていました.
これが原因っぽいですね.

理由というかまずphp session idって何
session idですが,これはログインしてからログアウトするまでそこに割り振られるIDのことです.
これを見て,例えば「ID=200だからお前はカワグチェだなッ」とサーバー側は判断するわけです.

アドレスにPHP SESSION IDが割り振られていると何が悪いの
これが割り振られているとセッションにそのIDが振られてしまいます.
しかもリンクにそれが含まれていると,
同じIDに複数の人間が割り振られてしまいます.
「ID=200 はカワグチェ」という事実と「ID=200 はサブパ」みたいな事になってしまい,
認証の整合性がとれなくなってしまいます.

でもあまり自信ないからこれでしばらく様子見ですかね・・・
てかこれが原因であってくれ

もしかしたらクッキーにIDが残っててまだ自動ログインミスが起こりうるかもしれぬ.
もし別の人でログインが起こったら一度ログアウトしてクッキーを作り直してみてね.

とりあえずエラーが出たら報告してください
あまりというかほとんど皆報告してくれんけどヽ(;▽;)ノ


comment

 ▼コメントを投稿する

管理者にだけメッセージを送る

つぶやき
プロフィール

GK.Kenta

Author:GK.Kenta
情報系大学院修士2年
来年からは福岡でASP(SaaSを提供)の会社にてSEです
ここではなるべく技術的な事をアウトプットしたいです

drumをば叩いております
live映像はこちらから
http://www.youtube.com/user/kwgt23

FC2カウンター
ブログ内検索
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。