アプリ版:「スタンプのみでお礼する」機能のリリースについて

ただいまPHP + MySQLにて、会員ログインシステムを導入した会員サイトを運営しておりますが、ログイン時にまったく別のユーザーでログインしてしまうという現象がおきて困っております。

たとえば、Aというユーザーが自分のIDとパスワードを使ってログインすると、ごく稀にBというユーザーでログインされてしまうということです。何かの間違いかと思い、会員データの編集画面を表示してもBの会員情報が表示されてしまい、ログアウトするまで、Bというユーザーでログインされているという状況です。

ID、パスワードの重複かと思いそちらもしらべましたが、
AはID、パスワードともに数字のみ
BはIDが英数字 パスワードが数字
になっており、重複や入力ミスではないようです。

ちなみにWORDPRESSを用いてサイト構築を行っています。
ログインの処理自体はWordpressnのプラグインなどは用いていません。
一度キャッシュを制御するプラグインを用いて、ログインした状態のページをキャッシュしてしまう事はありましたが、そちらは今回とは関係ないのではないかと思っております。
また、現在そのプラグインは使用しておりません。

ログイン処理などを何度も見直しましたが、
間違ってログインされるような事は起こりえないと思うのですが、
何かサーバーの問題などでこのような事は起こるのでしょうか?

大変困っておりまして、お答えいただけるととてもありがたいです

A 回答 (2件)

おそらく、ログイン処理部ではなく、セッション処理部の問題でしょう。



質問者さんがどのように作られているのかはわかりませんので、ある程度想像になりますが、
おそらく、
・最初に、ユーザーIDとパスワードを入れて認証
・セッション管理で、ユーザー認証成功したらその情報を入れる
・セッション情報に「認証成功」という情報が入っていたら、認証済として、その会員のデータを表示する
といった仕組みになっているかと思います。

ここで、もし、異なるユーザーが同じセッションを共有してしまっていたら、
セッション情報が他人のユーザーIDで認証済ということになってますから、「別のユーザーの情報が見れる」ということになってしまいます。


あとは、セッション管理をどうやっているのかによって話は変わってきます。
PHPのセッション管理関数を使ってるなら、まず重複することはありませんが、
独自の方法でセッション管理しているのなら、その部分で動作が一番あやしいかと思います。
    • good
    • 0

私も以前同じような現象に陥りました。



私の場合、同一PCから異なるIDとパスワードを使ってログインした場合のみに、そのような現象が確認されました。

そこで私的には、『ログアウト時のセッション情報の完全削除』『ログアウト後、一度リダイレクト』等の処理を挟むことで改善出来ました。

ご参考までに…。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!