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

MT php-users@php.gr.jp
2003年 3月 25日 (火) 11:41:33 JST


みなさんいつもお世話になります。MTです。

今回は「セッションと戻るボタンとセキュリティと」ということで、
セキュアかつ、ユーザーに使い易い会員登録システムの構築について
みなさんのスタイルをお伺いしたいのですが。
一通り過去ログには目を通しましたが、改めて。

phpを始める前、一番あこがれていたのはセッション機能です。
うまく使えば携帯電話でもクッキーみたいなことができるし、
よさそうだなと。実際使ってみて、セッションに値を持たせて
持ちまわれるようになるまで一苦労しましたが、やはり面白い機能ですね。

そこで、現在とりあえず完成とした会員登録の流れが

◇メールアドレスのみ送信 → 確認メール受信 → メール記載のURLにアクセス → 記入 →DBに登録

としておりました。メール記載のURLにはセッションIDがくっついています。
とりあえずOKかなと思い動かしてみましたが、お察しの通り、セッションIDがくっついた
URLは誰がクリックしても認証OK状態でした。

メールアドレスはUNIQUEキーにしたいので、いろいろ入力させてから「重複しています」とか
「記入ミスで確認メールとどかない」となるのを防ぐため、先に持ち主・存在確認・重複確認
が行えるので、いろんなサイトのやり方を検討した結果、やっぱりこのスタイルかなと思いました。

そこで携帯端末の固有ID、PCはクッキーで端末側で最認証行おうと思いましたが、
そうなると、PCでクッキー受け付けてないとか(受付させればいいのですが)imodeはutn指定で
IDがUSER_AGENTにくっついてくるというのは、それも気にならないか?とか使える端末を
限定することになる....など、尻込みする点も多々あります。
あっさりパスワードを発行すれば、認証になるか...。

◇整理しますが、
メールアドレスの存在確認があらかじめ行え、個人(端末)認証が行えるテクをご教授ください。

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

なにか問題点やセキュリティホールあれば事前にご指摘いただきたいのですが。
根本的にダメとかいわれてもやり直す時間はないのですが...。

P.S.
「戻るボタン」はセッションのキャッシュをプライベートあたりに設定すればよいのでしょう。
SSL内だからどちらにしろ戻れないのかな?

SSL初めてphp初めてPostgreSQL初めて ちょっと冒険しすぎた。思いっきり本番の仕事です。

-- 
MT <akc@mutt.freemail.ne.jp>




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