[PHP-users 32595] Re: セッションで制限しているページが見えてしまう

Takashi Nakao kalze @ fakelife.info
2007年 9月 5日 (水) 10:51:02 JST


> A.php
> <?php
>  session_start();
> 
>  //アクセス対策用セッション
>  $_SESSION['toroku']="OK";
> ?>
> B.php
> <?php
>  session_start();
>  //error_reporting(0);
> 
> //登録ページ以外からのアクセス防止
>  if($_SESSION['toroku']!="OK"){
>   header('Location:index.php');
>  }
> ?>

こちらは、アイレス松本さんの質問で書かれている、
> (A.php)
>  1.セッション変数abc $_SESSION['abc'] = 1;
>  2.<A>タグのlocation.hrefにてB.phpを実行します。
> (B.php)
>  1.$_SESSION['abc'] != 1ならエラー用htmlを表示します。
>  2.上記以外は通常処理を実行します。
という処理のB.phpの1のエラー用htmlを表示しますの部分を、
index.htmlへのリダイレクトに変更したものだとおもうのですが、
チェック方法が同じなのでエラーhtmlを表示するかリダイレクトするかの違いし
かないので、何も解決してないように思うのですが、いかがでしょうか?
(自分、そんなにPHPに詳しいわけではないので的外れなこと言ってるかもしれ
ません。その際は申し訳ないです。)


>   header('Location:index.php');

ヘッダでLocationを返すときは、絶対パスのURLを指定されたほうがよろしいか
と。RFCでもabsoluteURIになってますし、ブラウザによっては期待する動作しな
いものもあり、実際に遭遇したこともあります。
(なんのブラウザだったか記憶にないので例示できなくて恐縮です)




PHP-users メーリングリストの案内