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

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