認証テストチェックリスト:AIコーディングツールが認証において犯しがちなミス
Yunhao Jiao

認証はあらゆるアプリケーションにおいて最もセキュリティ上重要なコードです。CodeRabbitの調査によると、AIが生成したコードは不適切なパスワード処理を導入する可能性が1.88倍高いとされています。
このチェックリストは、AIコードが一般的に誤りやすいすべての認証パターンを網羅しています。
ログインフロー
- 有効な認証情報でアクセスが許可され、セッションが作成される
- パスワードが誤っている場合、「パスワードが違います」とは示さない汎用的なエラーメッセージが表示される
- N回のログイン失敗後にアカウントがロックアウトされる
- ログインエンドポイントにレート制限が適用されている
- 「ログイン状態を保持する」を選択すると、永続セッションが正しく作成される
- ログイン後、元々アクセスしようとしていたページにリダイレクトされる
セッション管理
- ページをリロードしてもセッションが維持される
- 設定されたタイムアウト後にセッションが期限切れになる
- 期限切れセッションは適切にリダイレクトされる(壊れた状態にならない)
- ログアウト時にサーバー側でセッションが無効化される
- セッショントークンがURLに露出しない
パスワードセキュリティ
- パスワードがbcrypt/scrypt/argon2でハッシュ化されている
- ユーザーごとに固有のソルトが使用されている
- パスワードリセットトークンは使用後および制限時間経過後に期限切れになる
- パスワード変更時に旧パスワードが必要である
認可
- 保護されたルートが未認証アクセスを拒否する
- ユーザーAがユーザーBのデータにアクセスできない(IDOR)
- ロールベースのアクセス制御がフロントエンドのルートとAPIエンドポイントの両方で適用されている
- 管理者エンドポイントは、単なる認証ではなく管理者ロールを要求する
TestSpriteは、これらすべてのパターンをすべてのPRで自動的にテストします。レート制限の欠如、IDOR脆弱性、トークンの露出などの問題を発見した場合、マージ前にフラグを立てます。
このチェックリストを印刷し、そして自動化しましょう。
TestSpriteを無料で試す →