Firebaseメール列挙保護機能を有効にするぜ

おはざますー
わたしですぅ、
今日あ、もう昨日だ(2024年1月24日)メールを確認しましたら、Firebaseさんから、
「メールの列挙保護機能追加したやで、過去にプロジェクト作った人は有効になってないから、確認して有効にしてや」
という連絡が来ておりました。

メール列挙保護とは?

ザクっと説明しますと、
アプリのユーザー認証でメールアドレスとパスワードを設定しているとします。
そこに第三者が適当にメールアドレスとパスワードを入力しますね。
で、出てくるエラーメッセージでそのアドレスがそのサービスに登録されているか確認するという手法があるということですね?

例:
メールアドレス入力(登録なし)
パスワード入力(登録ないので意味なし)
→メッセージ「メールアドレスは登録されていません」
 =アドレス登録がない

メールアドレス(登録あり)
パスワード(間違えている)
→メッセージ「パスワードが間違っています」
 =アドレスが登録されている

え?これが何に使えるかって?
詐欺に使えますね?
アドレスがそのアプリに登録されているということがわかるので、
例えば、それがショッピングサイトであれば、
そのショッピングサイトに偽って『引き落としカード情報が間違っています。確認してください』
等とメールを送れるわけですね。
手あたり次第送付するよりも効率は良くなるでしょう?

え?私は引っかからない?
引っかかる人がいるからはびこっているんですわよ。

はい、じゃぁ、対応ですけども、

Firebase側

メール列挙保護をオンにする
えーっとAuthの中、Settings、ユーザーアクションにチェックがありますので、そちらをチェックします。

ちゃんと保存しましょう

アプリ側

アプリ側としてはですね、、
リターンされるエラーメッセージが変更されます。
「パスワードが異なる・メールアドレスが登録されていない」かな?メールアドレスが登録されているかどうかがわかるエラーが変更されます。

対象はこれだけかな?
えーっと実際だとこちらか?
user-not-found
ユーザーが見つからないときのエラー
worng-password
パスワードが異なるときのエラー

で、こいつらがなんというエラーコードに変更されるかというと、こちら
invalid-credential
このエラーコードに差し替えられるようです。

ちなみに
email-already-in-use
このエラーはユーザーを新規登録しようとしたとき、入力したメールアドレスがすでに登録されていると表示されるので、
これも「アドレスが登録されているか」を特定できるわけですが、、
これを利用してサービス登録しているアドレスを特定しようとすると、サービスに対して大量のアドレス登録を行うことになるので、、、
ま、業務妨害として捕まっちゃうでしょうね。

うーん、ユーザとしてはアドレスを複数持っている人もいるし、入力したアドレスがあっているかくらいはわかる方が有用なんですけどね、、仕方ないかぁ、、

ちなみに、Firebaseから送られたメールには「こんな問題は対処済みやで~」
と、メール認証が正しく行えない事象が結構発生していたという情報も掲載されており、
…ほんとに大丈夫?となったのはきっと私だけではないはず。。w

おまけ
うーん?テストは実施したけど、本番環境においてこのFirebase側のチェックってどのタイミングでやりゃいいんやw?
アプリアップデートと、チェックタイミングはできるだけそろえなきゃなぁ、、
あぁ、アプリにエラー残しておけばいいからアプリ→チェックの順が妥当そうですわ。

2024/2/27追記
メール列挙保護機能をONにすると、アプリ上でメールアドレスを変更する(初回の入力ミスとかの)ときにうまく処理が動かない事象があるようです。
※記事をあさったんですが有効な手段が見つからず、、
(updateEmailが廃止されたという記述も見たのですが、うーん・・・)
記事上のこれならうまく行く!みたいなものもあんまり有効ではなかった、(アドレス変更すると強制ログアウトを食らう。。)
ので、うんーーーー本番への対応はしばらく先延ばしの予感。
どっかにいしゅー上がってんのを私が見つけられていないだけの気配もする。
しばらく様子見かなぁ、、、
いや、わかるのよ。
アドレス変更で、すでに登録されているアドレス入れられたらエラー返さないといけないからね、うん。
・・・もうね、この辺りはFirebaseさんがどうにかしてくれますわ。それまで待つわ(放り投げ)
はぁ、、、めっちゃやってみたけど全然うまく行かんかったわーーー!

stackoverflowにわしが遭遇したエラーの話が出てるのでおいとこ。
https://stackoverflow.com/questions/77147854/firebase-please-verify-the-new-email-before-changing-email-auth-operation-not

ではでは


この記事が気に入ったらサポートをしてみませんか?