🕌

メール所有権確認メールの仕様書

2022/04/18に公開

決めの問題を決めるときにいちいち仕様書書きたくないのでメモ

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