[PHP-users 3034] Re: POSTされたデータについて

tetuo shima php-users@php.gr.jp
Mon, 22 Oct 2001 18:25:47 +0900


> シリーズです
>
> > また、時間などの情報を保持してPOSTデータを見ないようにしてみましたが、障
害の
> > 対象がセッション破棄後、なのでうまくいきません。
> セッションを開始する時間と、POSTデータで保持している時間を比較すれば
> いいと思うんですけど、どうでしょうか?

POSTデータで保持する時間と、セッションを開始する時間を比較という事で、ログイ
ン画面に時間を渡す<hidden>タグを持たしてやりJavascriptで動的にログイン画面で
のサブミットボタンを押した時間を設定し、渡してやり、それを受け側のメニュー画
面で判定(仮に現在の時間から過去にさかのぼって10秒以内)できそうです。

ありがとうございました。



又、今考えついた処理ですが、ログイン画面にてセッション変数 $sLoginFlg = 1 と
いうのを設定してやり、メニュー画面にてこれが参照できる時は正常にログインした
ものとして処理を続ける。
ログアウト後、session_destory()にて $sLoginFlg 変数が参照できなくなることか
ら、「戻る」ボタンにてキャッシュされたPOSTデータからログイン認証しようとして
も出来ない。

これでも一応問題なく動くようです。

--------------
login.php

<?
    //ログイン画面にてセッションを初期化(登録されているようなセッション変数
を開放)
    session_start();
    session_destroy();


    //ログアウト後に「戻る」ボタンを押して再表示するのを防止
    //POSTデータがキャッシュ内に残り前ログイン者のIDで入れるため
    //メニュー画面で使用
    session_start();
    session_register("sLoginFlg");

    $sLoginFlg = 1;



--------------
menu.php

<?

    //セッションの開始
    session_start();

    //ログアウト後に「戻る」ボタンを押して再表示するのを防止
    //POSTデータがキャッシュ内に残り前ログイン者のIDで入れるため
    if(!$sLoginFlg == 1){
        echo "ログイン画面よりログインしてください";
        exit;
    }

//以下通常ログイン認証処理  ↓↓↓↓