kiheeさん、こんにちは。
Quote:
よくログアウトしないでブラウザを閉じてしまう事があります(ハック前)が、そうすると再度アクセスした時前回のセッションが残っていてログインせずに入れませんでしょうか?
とすると、このオートログインハックをする事自体の意味が分かりません。 情けない・・・
いえいえ。良い質問だと思いますよ。このあたりをちゃんと理解している人はさほど多くないですから。
私自身、きちんと説明したことがないため、ここで書いてみます。
結論から言うと、前のセッションが残っていることと、オートログインは根本的に違います。
まずセッションIDは、その場限りのクッキーとしてやりとりされます。
通常、ブラウザを完全に閉じれば、そのセッションクッキーは削除されるため、再度アクセスしたらログアウトされています。
ブラウザによっては、セッションクッキーが何らかの条件で残ることがあるため、セッションが継続されることはあります。
ただし、セッションは通常24分で切れます。php.ini でも、XOOPSカスタムセッションでも、それ以上に設定できますが、長すぎるセッション生存時間とすると、セッションハイジャックされやすくなります。
一方、オートログインに必要な情報は、有効期限付で保存されるクッキーとして保存されます。だから、ブラウザを閉じても、その有効期限が切れるまでは、ブラウザに保存されています。(このオートログインでは、初期値を1週間としています)
オートログインでは、そのクッキー値を利用して、新たなセッションに対してログイン処理を行います。だから、セッションとしては別物ですし、最終ログイン日なども更新されます。
ついでに有効期限について説明しておきますが、V3では、その有効期限を暗号化のキーにも利用しているため、有効期限の過ぎたクッキーをマニュアルでセットしても、認証がはねられるようになっています。
以上、まったくの別物であることがご理解いただけましたでしょうか?