メール所有権確認メールの仕様書
決めの問題を決めるときにいちいち仕様書書きたくないのでメモ
1. メール所有権確認メールについて
1.1 メール所有権確認メールの定義
メール所有権確認メールは、ユーザが提示したメールアドレスについて、提示した該当ユーザがそのメールアドレス所有者で有ることを確認するために送信されるメールです。
1.2 メール所有権確認メールの範囲
メール所有権確認メールは、以下の機能において用いられます。
- 会員登録時のメールアドレス入力時
- パスワードリセットのメールアドレス入力時
- メールアドレス変更時
1.3 メール所有権確認メールの形態
メール所有権確認メールで送信されるメールでは、本文に 識別用のトークンが付与された URL が付与されており、 ユーザはこの URL をクリックすることで、メールアドレスの所有権をアプリケーションに対して表明することができるものとします。
1.4 識別用トークン提供の形態
識別用のトークンは、URL の中で、クエリパラメータを用いて ?token={token}
の形式で提供されます。
token の文字列は、32 文字以上のランダムな文字列で構成され、RFC4122で定められる UUID の形態を取ります。
1.5 識別用トークンの有効期限
識別用トークンは有効期限をもち、メールが発行されてから 24 時間の経過で発行された URL は無効となります。
1.5 識別用トークンの重複発行
メール所有権確認メールが同じメールアドレスに対し複数回発行された場合でも、常に異なる識別用トークンが発行されます。
ユーザは複数届いたメールのうち、どのメールからでもメールアドレスの所有権を確認できるものとします。
1.6 識別用トークンの無効化
識別用トークンは有効期限をもち、メールが発行されてから 24 時間の経過で発行された URL は無効となります。
1.6 識別用トークンの無効化
メール所有権確認のために一度利用された識別用トークンは、無効となります。
2. セキュリティに関する取り組み
2.1 識別用トークンの無作為抽出
識別用トークンの無作為抽出に対抗するため、識別用トークンの検証 エンドポイントに rate limiting などの適切なセキュリティ制限を施すものとします。
2.2 識別用トークンの多重発行
識別用トークンの多重発行により 識別用トークンの無作為抽出 での Hit 率を向上させようとする攻撃のために、有効な識別用トークンの発行上限数を定めるものとします。
Discussion