未登録のメアドでパスワードリセットしようとしたとき「このメアドは正しくありません」のようなエラー表示させることは可能ですか?

Topic summary

パスワードリセット機能で、未登録のメールアドレスを入力しても「メール送信完了」のメッセージが表示されてしまう問題について質問が投稿されました。質問者は、実際にはメールが届かないため顧客が混乱する可能性を懸念しています。

提案された解決策:

  • Helium Customer Fieldsアプリを応用してメールアドレスの存在確認を行う方法
  • カスタムアプリ開発によるメールアドレス確認API実装

セキュリティ上の重要な指摘:
回答者は、メールアドレスの登録有無を明示することはセキュリティリスクになると説明しています。現在の仕様(常に同じメッセージ表示)は、メールアドレスが登録されているか判別できないようにする意図的な設計です。メッセージを変更すると、攻撃者がアカウントの存在を確認し、総当たり攻撃などのリスクが高まる可能性があります。

この議論は、ユーザビリティとセキュリティのトレードオフを考慮する必要性を示唆しています。

Summarized with AI on October 27. AI used: claude-sonnet-4-5-20250929.

未登録のメアドでパスワードリセットしようとしたとき、「このメアドは正しくありません」とエラー表示させることは可能ですか?

パスワードリセット画面(account/login#recover)で、未登録のメアドや誤って入力してしまったメアドでも、

入力して「送信」ボタンを押すと、

「パスワードを更新するためのリンクが記載されたメールを送信しました。」のように、成功したかのうようなメッセージが表示されてしまいます。

(明らかに存在しないアドレスであればエラー表示されたのですが、存在しそうなメアドだったり、存在するが登録したことのないアドレスでテストすると、送信完了メッセージが表示されてしまいます)

ただ、実際に未登録のメアドには何もメールは届かないため、お客様的に混乱しやすいかもと考慮しています。

もしご存知の方がいらっしゃいましたら教えていただけますと幸いです。

どうぞよろしくお願いいたします。

@Sato-A

Helium Customer Fieldsを応用することで、

https://apps.shopify.com/customr?locale=ja

メールアドレスの存在確認もできるかもしれません。

ベンダーにお問い合わせいただくのが良いかと思います。

もしくは、

カスタムアプリを開発し、メールアドレスの存在確認を行うAPIを作ることは可能です。

しかし、

メールアドレスが存在するかしないかを明示するのはセキュリティ的にはリスクにもなりえます。

メールアドレスがあってもなくても常に同じメッセージが表示されることは、

そのメールアドレスが登録されているかどうかも確定できない、ということでもあります。

逆に、メールアドレスの有無によってメッセージを変更しますと、

そのメールアドレスが登録されていることが明らかになりますので、

そのメールアドレスに対して、例えば、総当たりでパスワードを試すこともできてしまいます。

(Shopify自体にログイン失敗回数によるセキュリティ機能があったと思うので、

総当たり自体は怖くはないですが、一例として。)

ご参考まで。

(キュー田辺)

1 Like