質問: WEBアプリで公開を目指しており、パスワード変更機能を作成したいと考えております。 事前にユーザにメールアドレスを登録してもらい、ユーザーが「パスワード変更する」などをクリックした時、そのユーザーのメールアドレスに仮パスワードを送信するなどで実装しようと考えております。 メールアドレスなどを登録するWEBアプリなどは数多くあると思いますが、登録したメールアドレスは単純にDBに保存して管理するのでしょうか。 セキュリティ対策で何らかの処置をするものなのでしょうか。
回答: そのままメールアドレスをDB登録して構わないと思います。そもそも、そういったWEBシステムにおいてDBは背後に隠れていて、間違ってもエンドユーザーが直接触るものでなく、また触らせないものだからです。DB登録自体に何かの対策を図るというよりも、システム全体として不正アクセスなどへの対処を怠らないことで、情報流出への備えとします。 問題はむしろパスワードです。管理しないことにはシステム運用できませんが、かと言ってそのままDB保存したら危険です。パスワードは暗号化して保存する方法をとるのが普通です。当然システムとしては復号化できなければなりません。 私の知るところでは、例として Ruby on Rails + devise を試行してみると、一通り上記のことが手にとるように体験できるのですが、いかがですか?