• システム開発に関わる内容をざっくりと書いていく

新しいパスワード設定ロジック

パスワード設定はシステムのセキュリティを保つための重要なプロセス。以下の手順で、新しいパスワードの設定が安全かつ正確に行われるようにロジックを定義する。

1. バリデーション

入力された情報に対して、以下のバリデーションを行う。

  • 空欄チェック: 必須項目である「ユーザID」、「現在のパスワード」、「新しいパスワード」、「新しいパスワードの確認」欄がすべて入力されていることを確認。
  • パスワードの一致確認: 「新しいパスワード」と「新しいパスワードの確認」に入力された値が一致していることを確認する。
  • パスワードポリシーの適合性: パスワードが設定されたポリシーに準拠しているかを確認。具体的には、以下の条件を満たす必要がある。
    • 8文字以上
    • 英大文字、英小文字、数字、記号を少なくとも1つずつ含む
    • 連続した文字や、ユーザIDの一部がパスワードに含まれていないか
    :
    “UserID123” というユーザIDに対して、「User1234」というパスワードは、IDと類似しているため不適切。

2. ユーザIDとパスワードの組み合わせ確認

次に、ユーザIDと現在のパスワードが正しいかどうかを確認し、不正なパスワード変更を防ぐ。

  • ユーザIDとパスワードが同じでないか: 新しいパスワードがユーザIDと一致していないか確認する。セキュリティ上、パスワードはユーザIDと異なる値である必要がある。
  • 現在のパスワードと新しいパスワードが同じでないか: 現在のパスワードと新しいパスワードが同じでないか確認する。パスワード変更の意味がないため、異なる値である必要がある。:
    ユーザが「現在のパスワード」として「Password123」を使用している場合、新しいパスワードとして同じ「Password123」を再度設定することは許可しない。

3. 更新処理の完了確認

パスワード変更をDBや関連システムに登録する処理が成功したかを確認する。

  • DB更新の正常性: 新しいパスワードがデータベースに正常に登録されたかどうかを確認。更新処理が途中で失敗していないか、トランザクションが完了しているかをチェックする。
  • エラーハンドリング: 更新処理中に発生する可能性のあるエラー(DB接続エラー、書き込みエラーなど)に対して適切なエラーメッセージをユーザに表示する。エラーが発生した場合、元のパスワードに影響がないことを保証し、再度試行できるようにする。:
    データベースの接続が途切れた場合、ユーザには「パスワードの変更に失敗しました。再度お試しください。」といったメッセージを表示し、再試行の方法を案内する。

追加の考慮事項

メール通知: パスワードが変更された際には、ユーザに確認メールを送信して、不正な変更がないかを通知する。

パスワード変更の履歴管理: 過去に使用されたパスワードを再度使用できないようにするため、パスワード履歴を管理する。例えば、直近3回分のパスワードを保存し、それらと一致しない新しいパスワードのみ許可する。

ロックアウトポリシー: 複数回の失敗したログインやパスワード変更試行に対して、ユーザアカウントを一時的にロックすることで、不正なアクセスからシステムを守る。