-1

ログインのあるPHPサイトがあります。ユーザーが (標準のファイル ベースのセッションを使用して) ログインすると、そのユーザーはログアウト ページをクリックしてログアウトできます。

問題は - 訪問者は一般的にそうしません。Web ブラウザを閉じるだけです。

ただし、次の人が来てブラウザを開き、最初の人のログイン領域にいる可能性があります。

これは巨大なセキュリティ ホールのようです :) 共有ユーザー環境 (オフィス、インターネット カフェなど) では

ウィンドウを閉じてその人を「ログアウト」する方法を知る必要があります。私はそれを知っている

 'session.cookie_lifetime' 

変数は 0 に設定されます。

何か解決策がなければなりません。どんな助けでも大歓迎です。

4

1 に答える 1

0

PHP は、クライアントが閉じるタイミングを (単独で) 知ることができません。これは、サーバー イベントではなくクライアント イベントであるためです。window.unloadただし、クライアントで JS を使用して AJAX をサーバーに戻し、イベント ( link )を使用してセッションが閉じられたことを知らせることができます。

また、セッションのクリーンアップの潜在的な穴を説明しているこの回答(より最近の PHP バージョンにも適用されるかどうかは不明) と、調整が必要な場合がある session.gc_maxlifetime も確認してください。

于 2013-11-14T02:45:04.460 に答える