メールによるパスワードリセットは危険
…という気がしている。
「メールでパスワードをリセットできる」というのはある意味でユーザの利便のためにある機能
ここで注意したいのは「アカウントの作成に有効なメールアドレスが必要」というのとは別の話題だということ。
機械的に大量にアカウントを作られるのを防ぐ
広告を送る
広告を送ったり大量にアカウントを作られるのを防いだりするために有効なメールアドレスを要求するのは良いが、そのメールアドレスを用いてパスワードをリセットする機能が存在するのはセキュリティリスクになりうる
Web サービス運営者は、ユーザが自サービスで使うパスワードを制限できる
記号と数字入れろ、16字以上にしろ、など
しかし、ユーザが自サービスで使うメールアカウントで使うパスワードは制限できない
自サービスでどんなに長大で強固なパスワードを強制していたとしても、そのパスワードをリセットすることができるメールアカウントのパスワードがpasswordだったら?
コントロールできない部分にリスクが存在するのはかなり嫌では……
ある程度強固なパスワードをユーザに強制していることが既にわかっているメールプロバイダしか使えないようにする?
最悪すぎるけど、まあ最近 Google の OAuth でしか使えないサイトあるしそういう選択もありなのかな
ストイックな案
メールによるパスワードリセットを実装しない
パスワードの紛失はユーザに100%非があるので、サービス側としては一切責任を負いませんよ、というスタンス
折衷案
メールによるパスワードリセットをオプトアウトできる
ユーザは以下の選択肢を与えられる
パスワードを紛失したら2度とログインできない(不便)が、メールアカウントを乗っとられても当該サービスのアカウントの安全は確保される
パスワードを紛失したとしてもメールでリセットできる(便利)が、メールアカウントを乗っとられたら当該サービスも巻き込まれて乗っとられる(現状のほぼ全ての web サービスと同様)
なんにせよ選択肢が与えられるのは良いことなので、いくぶんかマシなのかな?どうなんでしょう
そもそもパスワードを捨てる案
メールで送られたマジックリンクでしかログインできなくする
自サービスのユーザを守る、という点から、自サービスのユーザの安全性を外部に移譲することになる。逃げるな。