ウェブサイトでは、登録時にメール確認リンクを送信するのが一般的です。これらの確認リンクは期限切れになりますか?私は彼らが行っているたくさんのウェブサイトについて知っています、そしてなぜ私は不思議に思いますか?
有効期限が切れるのには、大きなセキュリティ上の理由はありません。これが行われる主な理由は、古い未使用の検証情報をデータベースをクリーンアップするできるようにするためです。
UX側から見ると、検証時間が短いと検証が遅くなるのではないかという人もいますが、それを裏付ける証拠は見たことがありません。しかし、それは私が人間の行動に期待するものと一致します。
確認リンクをクリックしてユーザーが自動的にログインした場合、はい、確認リンクは期限切れになります。
どうして?ユーザーの受信トレイが危険にさらされている場合、ハッカーは確認メールを検索し、確認リンクをクリックしてWebサイト上のユーザーのプロファイルにアクセスできるからです。
問題は、リンクがいつ期限切れになるかです。クリックした直後ではないかもしれませんが、たとえばリンクがクリックされてから24時間後などです。
電子メールの確認の有効期限を処理しない場合、誰かが他の人の電子メールアドレスに登録し、それを確認することは決してできません。これにより、正当なユーザーがあなたのWebサイトに登録したい場合に、その電子メールがロックされます。
ユーザーが所定の時間内に電子メールアドレスを確認しなかった場合、それが実際に自分のアドレスではなかった場合、または後で再度登録したい場合に備えて、再度使用可能にする必要があります。ユーザーが間違った電子メールアドレスを誤って入力した場合を考えます。
また、メールアカウントを持つ真のユーザーは、サイトで許可されている場合、確認メールを再送信することを試みることができますが、このやり取りではひどい体験になります。
これは、ユーザーデータベースを最新に保つ方法です。有効期限までメールが確認されない場合、対応するユーザーアカウントがユーザーデータベースから削除されます。
電子メールに有効期限が必要ない場合は、削除する必要があります。あなたは常にユーザーの摩擦を減らすよう努めるべきです。彼らが必要としない情報は摩擦を増大させます。
先日このディスカッションを行ったところ、そもそも誰かが確認メールでメッセージ全体を読んだことがあるかどうか疑問に思っています。
登録した人は、登録後にメールを確認する必要があるというメッセージを読んでいる可能性が高く、現在行っていることはすべて、自分のアカウントにアクセスしようとしていることです。ほとんどのユーザーはこのプロセスに精通しており、電子メールのリンクをクリックするとすぐに有効期限が表示されることはありません。
リンクの有効期限が切れている場合、ユーザーはまずリンクが期限切れであることを知らせる情報ページに移動し、ログインして各フローに移動するように求められるべきだと思います。
ユーザーが本物である場合、何が起こったかについての良い考えをユーザーに与え、設計原則を見つけるための良い方法につながります。
期限切れにならない受け入れられない招待は、不必要なセキュリティリスクです。おそらく、ユーザー/アカウント/プロファイルなどがサインアップするまで存在しない単純なシングルユーザーアプリケーションではセキュリティリスクではありませんが、複数のユーザーまたは多くのアプリケーションを持つアカウントに関しては、明らかにリスクです。ユーザーに代わってアカウントが設定され、機密情報や個人情報(住宅ローンのログインなど)が含まれる場合があります。ユーザーが招待を受け入れず、後で攻撃者が自分の電子メールにアクセスできるようになった場合、関連するアカウントにアクセスできます。ソフトウェアを使用していないユーザーのために、この攻撃ベクトルを開いたままにしておく必要があるのはなぜですか。 1つのサイズですべてのアプローチに対応できるわけではありませんが、疑わしい点がある場合は、細心の注意を払います。
誰かがユーザーがサインアップしたときに電子メールが侵害された場合、攻撃者はパスワードを変更することで簡単に自分のアカウントにアクセスできると主張するかもしれません。これは別の問題であり、おそらく2要素認証などの他のセキュリティ対策を検討するのに十分な理由です。