[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;
}
//以下通常ログイン認証処理 ↓↓↓↓