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

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

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

このチェックリストは、AIコードが一般的に誤りやすいすべての認証パターンを網羅しています。

ログインフロー

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

セッション管理

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

パスワードセキュリティ

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

認可

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

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

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

TestSpriteを無料で試す →