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

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

認証はあらゆるアプリケーションにおいてセキュリティ上最も重要なコードです。CodeRabbitの調査によると、AIが生成したコードは不適切なパスワード処理を導入する可能性が1.88倍高いことが判明しています。

このチェックリストは、AIコードが犯しがちなすべての認証パターンを網羅しています。

ログインフロー

  • 正しい認証情報でアクセスが許可され、セッションが作成される
  • パスワードが誤っている場合、汎用的なエラーメッセージが表示される(「パスワードが違います」とは表示しない)
  • N回のログイン失敗後にアカウントがロックアウトされる
  • ログインエンドポイントにレート制限が適用されている
  • 「ログイン状態を保持する」で永続的なセッションが正しく作成される
  • ログイン後、元々アクセスしようとしたページにリダイレクトされる

セッション管理

  • ページをリロードしてもセッションが維持される
  • 設定されたタイムアウト後にセッションが期限切れになる
  • 期限切れのセッションは適切にリダイレクトされる(壊れた状態にならない)
  • ログアウト時にサーバー側でセッションが無効化される
  • セッショントークンがURLに露出していない

パスワードセキュリティ

  • パスワードがbcrypt/scrypt/argon2でハッシュ化されている
  • ユーザーごとに一意のソルトが使用されている
  • パスワードリセットトークンは使用後および時間制限後に期限切れになる
  • パスワード変更時に現在のパスワードの入力が必要である

認可

  • 未認証のアクセスが保護されたルートで拒否される
  • ユーザーAがユーザーBのデータにアクセスできない(IDOR)
  • ロールベースのアクセス制御がフロントエンドのルートとAPIエンドポイントの両方で適用されている
  • 管理者エンドポイントは単なる認証ではなく、管理者ロールを必要とする

TestSpriteはこれらすべてのパターンをすべてのPRで自動的にテストします。レート制限の欠如、IDORの脆弱性、トークンの露出などの問題を発見した場合、マージ前にフラグを立てます。

このチェックリストを印刷してください。そして自動化しましょう。

TestSpriteを無料で試す →