[PHP-users 14319] Re: セッションと戻るボタンとセキュリティと

Y.Watanabe php-users@php.gr.jp
2003年 3月 26日 (水) 03:05:16 JST


わたなべです。

MT wrote on 2003/03/25 20:41
with Subject: [PHP-users 14314] セッションと戻るボタンとセキュリティと

>そこで、現在とりあえず完成とした会員登録の流れが
>
>◇メールアドレスのみ送信 → 確認メール受信 → メール記載のURLにアクセス → 
記入 →DBに登録
>
>としておりました。メール記載のURLにはセッションIDがくっついています。
>とりあえずOKかなと思い動かしてみましたが、お察しの通り、セッションIDがく
っついた
>URLは誰がクリックしても認証OK状態でした。

これだと、DBに登録後は必ずそのセッションを破棄、つまりsession_destroy()
しないとまずい気がします。いずれにせよPHPのセッションの本来の使い方では
ない気がするのでおすすめしません。
やはり、

>自分なりの解決法としては、基本的に上記フローで、メール送信時に受付番号を発
行し、DBに
>メールアドレスで仮登録して、セッションつけないURLにアクセスしてもらって、受
付番号で
>DBからデータ引っ張ってきて、登録完了。

という方法がよいのではないでしょうか。
(つまりPHPのセッションIDとは別な受付番号などを発行する)

なお、

>メールアドレスはUNIQUEキーにしたいので、

とあるあたりにひとつ落とし穴があって、
メールアドレスを会員IDのようなUNIQUEなキーとして使用するとした場合には、
メールアドレスの大文字小文字をどう扱うか?ということをきちんと
規定しておかないとあとで面倒なことになります。
ABC12345@nifty.com というアドレスと abc12345@nifty.com という
アドレスを「違う」と認識すべきではないはずです。
一番確実なのは「メールアドレスは全て小文字」と規定した上で
あらゆるフォーム等から入力されるメールアドレスの文字列を全て
  
  strtolower($_POST["mailaddress"]) ;

とかしてしまうのが手っ取り早くて確実な方法です。





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