受信トレイ
開発者・QAへ戻る

Recoveryはaccount security stateを変える

Password Resetメールをテンプレートではなくsecurity flowとしてテストする方法

request、token使用、password変更、replay、最終loginまで追い、メール到着だけでrecovery成功と判断しません。

読了目安 8分

Resetメールが正しく見えても、tokenが再利用できる、古いlinkが新しいrequest後も使える、旧passwordがpolicyに反して残るといった不具合はあり得ます。メールを一時credentialを運ぶ1ステップとして扱い、account recovery全体を検証します。

known stateから始める

  1. 1

    専用test accountを使う

    初期password、address、sessionを把握します。

  2. 2

    resetを1回だけrequest

    時刻とidentityを記録します。

  3. 3

    secret全体を保存せずURLを確認

    host、route、environmentで多くの診断ができます。

  4. 4

    public flowでpassword変更

    DB直接変更で成功を作りません。

  5. 5

    最終認証を確認

    新旧passwordとsession policyをassertします。

独立して検証するsecurity property

PropertyPositiveNegative
Expirationfresh token worksexpired fails
Single usefirst worksreplay follows policy
Supersessionnew token policyold token cannot bypass
Bindingright account changesother identity unaffected
Sessionpost-reset state correctold session removed when required

OWASP guidanceをblack-box caseにする

OWASPはreset tokenをrandom、十分な長さ、安全なstorage、期限付き、single-useにし、valid tokenの提示前にaccountを変更しないよう求めています。

QAではexpiration、replay、invalid token後のstate unchangedなどとして確認できます。

安全なdiagnostic

  • identity/environment
  • request time
  • sanitized host/route
  • first use/replay
  • old/new login
  • session state

正しいaccountが正しいtokenで一度だけ回復し、その後のsecurity stateが仕様どおりであればreset flowは健全です。

手動メールQA用のクリーンな受信先が必要ですか?

MailOnceで、個人の受信箱をテストデータとして使わずに、登録、OTP、マジックリンク、パスワード再設定、通知メールを確認できます。

使い捨てメールを作成

参考資料と追加情報

テスト指針の根拠として使用したセキュリティ資料とテストランナーの一次ドキュメントです。

次のテストへ

同じメールテスト領域にある次の境界を確認します。