0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

mixi2のユーザー認証についての考察

Posted at

この記事のモチベーション

mixi2のユーザー認証がなぜああいうフローなのか有識者にコメントもらいたく、まとめてみる。

招待のみで参加可能なmixi2ですが、招待ありきでのユーザー登録フローなので慣れない感じがしつつも登録し、ふと何かのタイミングでセッションが切れて再ログインしたとき、ちょっと変わった認証フローだなぁと感じた次第。

特に、ユーザーとして存在しないメールアドレスをsubmitしたときのフローが見慣れない感じでした。

認証成功

まず、認証が成功するパターンから。

  1. 登録済みのメールアドレスを入力してsubmit.
    image.png

  2. 届いたメールに書かれたパスコードをコピー。
    image.png

  3. 入力してsubmit.
    image.png

  4. ログイン成功。
     → ユーザーページに入る。

パスワードレス方式(?)

私が知らないだけかもですが、こういうパスワードレスってほかのサービスでもありますか?パスキーや生体認証でなく、メールアドレスを使ったパスワードレス。
確かに、パスワード無くすだけでいろいろメリットはある気がします。

  • サービス側はユーザー+パスワードの組を保持しなくて済む。
  • 攻撃者のモチベーションが削がれる。普通のフィッシングじゃ突破できなくて、ちょっと工夫が必要。
  • ユーザーにとってパスワード使いまわしのリスクが存在しない。

とかでしょうか?(ほかにもあれば教えてください!)

認証失敗(登録してないメールアドレス)

1~3は同じです。

  1. 登録済みでないメールアドレスを入力してsubmit.
  2. 届いたメールに書かれたパスコードをコピー。
  3. 入力してsubmit.
  4. 存在しないといわれる。
    image.png

なるほど・・?

失敗パターンは、Step1で入力してる時点で「あれ、これだっけ・・?」と思いながらアドレスを入れてるのですが、認証コードが書かれたメールが普通に届くので、「あ、これであってたか」と一瞬思わせておき、最終的には梯子を外される感じ。

このフローのメリットは?

登録済み/存在しないのいずれでも、認証コードの画面(Step3)に遷移するので、存在するユーザーIDをクローリングされるのは防げるのでそこはメリットですよね。
ですが、ユーザーとして存在しないメールアドレスの場合でも認証コードを送ってくるのはなぜ・・?メールを送らないとか、「メールの本文に存在しないユーザーです」と書くとかでもいいのではと思ってしまう。。

メール発報に至る内部フローも合点がいかない・・

発行した認証コードをユーザーと結び付けて一時的なデータベースなりメモリに保管ができたことを確認してからメール出すのが真っ当じゃないですかね・・?発行した認証コードの結びつけ先が存在しないけどそのままメール発報まで突き進んでいる・・?
ここがあまり合点がいっておらず、何かわかる方いれば教えていただきたいです。

何かご存じの方コメントください

内部の判定ロジックを減らしてシンプルにしてるのかなーというとりあえずの納得を自分の中ではしてるのですが、何かわかる方いたらコメントお待ちしてます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?