回答編集履歴

2

質問を受けて追記

2025/04/29 04:44

投稿

TakaiY
TakaiY

スコア14286

test CHANGED
@@ -70,3 +70,19 @@
70
70
  * 問題なければログイン成功。 正常時の画面を用意。
71
71
 
72
72
  こんな感じでしょうか。
73
+
74
+ ---
75
+ コメントを受けて追記
76
+
77
+ コメントで以下の質問がありました。 意味が取れない部分があります。
78
+ > 入力画面(会員登録画面)から送られてきた画面からは直接見えないワンタイムトークンをセッションで送信後、メールに送られてきたトークンを画面に入力してOKを押す、トークンを照合して、正しければ正常に本登録完了という流れになるのでしょうか?
79
+
80
+ まず、元の質問では「ワンタイムトークンを**セッション**で送信」とありますが、意味が通じません。 単に用語の使いかたが間違えているだけだとは思いますが、セッションというのはWebでの一連の通信そのもののことなので、メールを送ることはできません。なので、勝手に以下のように推測します。太字とのところが修正部分です。
81
+
82
+ 入力画面(会員登録画面)から送られてきた、(**読点挿入**)画面からは直接見えないワンタイムトークンを**サーバからメール**で送信後、メールに送られてきたトークンを画面に入力してOKを押す、トークンを照合して、正しければ正常に本登録完了という流れになるのでしょうか?
83
+
84
+ この内容だとすると、1つ違います。
85
+ ワンタイムトークンが「入力画面から送られて」来るように読めますが、回答に書いたシーケンスではワンタイムトークンはクライアント側で作るのでなく、サーバ側で作っています。なので、「入力画面(会員登録画面)から送られてきた画面からは直接見えない」の部分は不要です。
86
+ どうしても、クアイアント側で作りたいのであれば質問のとおりの動作になりますが、心配しているセキュリティの観点からすると、ワンタイムトークンがクライアントからサーバにそのまま送られることになり、無駄なデータのやりとりはすべきでないということになります。
87
+
88
+

1

シーケンス内に書いた余計な情報を別の場所に移動。

2025/04/29 02:39

投稿

TakaiY
TakaiY

スコア14286

test CHANGED
@@ -29,7 +29,7 @@
29
29
  * ワンタイムトークンを生成する。
30
30
  * DBに登録する。メールチェックを必須とするなら、仮登録)
31
31
  * メールアドレス確認のためのメールを作成して送信する。
32
- 方式には、メールで伝えたワンタイムトークンを入力させる方式の他、登録用のリンクをメールに記載してそこにアクセスしてもらう方法などいくつかある。
32
+ メール本文にワンタイムトークンを記載る。
33
33
 
34
34
  ユーザ: メールに送られてきたトークンを画面に入力してOKを押す
35
35
 
@@ -41,6 +41,8 @@
41
41
  * 次画面として、登録衆力の画面を生成。
42
42
 
43
43
  こんな感じでしょうか。
44
+
45
+ このシーケンスではメールアドレスの確認にワンタイムトークンを使っていますが、トークンを使うのではなく、メールに確認用のリンクを記載しそこからサイトにアクセスしてもらうことで登録完了となる方式も多いですね。
44
46
 
45
47
  ---
46
48
  ログイン時のワンタイムトークンのやりとりは目的が異なり、ログインしてきたのが本人であるかどうかの検証のためです。 2要素認証ということになります。