PHPは、各ユーザのセッションデータをサーバの一時フォルダに保存します。このフォルダは、session.save_path変数の下にあるphp.ini設定ファイルで定義されています。 php.iniファイルの中から、この値を探し、または代わりに、とのPHPファイルを作成します。それは中身だとして
<?php echo "Session Save Path: " . ini_get('session.save_path');?>
、およびお使いのブラウザでファイルを開きます。
セッションデータの保存パスを見つけたら、そのフォルダを開くと、かなり単純な構造になります。すべてのセッションは、sess_ $ SESSIONIDの形式で格納されます。
セッションデータは、ディスクに格納される前にシリアル化されます。そのため、セッションファイルに格納されているオブジェクトは、使用可能になる前にデシリアライズする必要があります。ただし、セッションデータ(例:$_SESSION['userid'] = 1234
)を保存してユーザーの情報を保存するプレーンテキストを使用している場合は、探しているデータを解析するだけで十分ですファイル内。
もう1つ...私はそれを調べていませんが、ファイル名に表示されるセッションIDが、たとえばユーザーのコンピュータに保存されているPHPSESSID Cookieの名前に直接対応しているかのように見えます。これを念頭において、一時セッションディレクトリ内のファイルをループし、$ SESSIONID値をすべて取得し、session_id($SESSIONID)
を使用して現在のセッションIDを設定し、session_start()
でセッションを開始し、PHPを介して必要なデータにアクセスすることができますコンテンツファイル自体を解析する必要はありません。これが可能かどうか誰でも確認できますか?
編集:調整済み投稿はItayさんのコメントに一致します。ここで
この種のハックはひどい考えです。 PHPには「共有しない」アーキテクチャがあり、それをハックしようとすると釘を植え付けるためのドライバーを使うようなものになります。 serwer内部ファイルを解析するのではなく、独自のファイルを作成するか、必要に応じてデータベースを使いこなすことができます。 – smentek
phpにはセッションデータをメモリに保存するオプションがあります。必ずしもファイルからそれらを取り出すことはできません。 – jondinham
以上の場合、これらの "ses_ *"ファイルは、複数レベルのディレクトリ構造の下に置くことができます。これはphp.netで言われたものです – jondinham